OMA Multi-Agent Orchestrator
first-fluke/oh-my-agent
Splits a complex feature into prioritized tasks, spawns specialist CLI subagents in parallel, tracks them through shared memory and verifies each result.
Orchestrates parallel API instances, delegated sub-tasks, and multi-agent workflows with streaming and tool-enabled delegation patterns.
$ npx skills add oaustegard/claude-skills --skill orchestrating-agents -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install oaustegard/claude-skills orchestrating-agents --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/oaustegard/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/orchestrating-agents .claude/skills/orchestrating-agents && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "orchestrating-agents" agent skill from https://github.com/oaustegard/claude-skills/tree/main/orchestrating-agents into .claude/skills/orchestrating-agents/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrating-agents", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/oaustegard/claude-skills/tree/main/orchestrating-agentsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add oaustegard/claude-skills --skill orchestrating-agents -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install oaustegard/claude-skills orchestrating-agents --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oaustegard/claude-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/orchestrating-agents .agents/skills/orchestrating-agents && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "orchestrating-agents" agent skill from https://github.com/oaustegard/claude-skills/tree/main/orchestrating-agents into .agents/skills/orchestrating-agents/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrating-agents", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add oaustegard/claude-skills --skill orchestrating-agents -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install oaustegard/claude-skills orchestrating-agents --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oaustegard/claude-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/orchestrating-agents .cursor/skills/orchestrating-agents && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "orchestrating-agents" agent skill from https://github.com/oaustegard/claude-skills/tree/main/orchestrating-agents into .cursor/skills/orchestrating-agents/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrating-agents", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/oaustegard/claude-skills.git --path orchestrating-agents--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add oaustegard/claude-skills --skill orchestrating-agents -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install oaustegard/claude-skills orchestrating-agents --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oaustegard/claude-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/orchestrating-agents .gemini/skills/orchestrating-agents && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "orchestrating-agents" agent skill from https://github.com/oaustegard/claude-skills/tree/main/orchestrating-agents into .gemini/skills/orchestrating-agents/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrating-agents", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install oaustegard/claude-skills orchestrating-agentsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add oaustegard/claude-skills --skill orchestrating-agents -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/oaustegard/claude-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/orchestrating-agents .github/skills/orchestrating-agents && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "orchestrating-agents" agent skill from https://github.com/oaustegard/claude-skills/tree/main/orchestrating-agents into .github/skills/orchestrating-agents/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrating-agents", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add oaustegard/claude-skills --skill orchestrating-agents -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install oaustegard/claude-skills orchestrating-agents --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oaustegard/claude-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/orchestrating-agents .opencode/skills/orchestrating-agents && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "orchestrating-agents" agent skill from https://github.com/oaustegard/claude-skills/tree/main/orchestrating-agents into .opencode/skills/orchestrating-agents/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrating-agents", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
orchestrating-agentsOrchestrates parallel API instances, delegated sub-tasks, and multi-agent workflows with streaming and tool-enabled delegation patterns.
Orchestrating Agents is an agent skill from oaustegard/claude-skills. Orchestrates parallel API instances, delegated sub-tasks, and multi-agent workflows with streaming and tool-enabled delegation patterns. Routes by surface — native subagents in Cowork and Claude Code, httpx fan-out on claude.ai — and covers Gemini delegation via the Cloudflare AI Gateway on every surface. Use for parallel analysis, multi-perspective reviews, or complex task decomposition.
Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 15 other files, including scripts and reference files (for example `CHANGELOG.md`, `README.md` and `references/api-reference.md`).
It sits in Agent Workflows, covering Subagents and Task breakdown. It works with Workers AI. The repository describes itself as: My collection of Claude skills. The licence is MIT.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 6fc82b8. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 8 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
uvpython3From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
console.anthropic.comdocs.anthropic.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ANTHROPIC_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Orchestrating Agents loads about 4.8k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 103 tokens; SKILL.md has 1,646 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from oaustegard/claude-skills at commit 6fc82b8, republished under its MIT licence (© oaustegard). 1,646 words, ~4,798 tokens.
.claude/skills/orchestrating-agents/SKILL.md (or your agent's skills folder). This skill also uses 13 other files; get the full folder from GitHub.Fan-out has three possible engines. Which exist depends on where you are running. Pick the engine before writing any orchestration code.
| Engine | claude.ai | Cowork | Claude Code / CCotw |
|---|---|---|---|
Native subagents (Agent / Task / Workflow) | ✗ | ✓ | ✓ |
Gemini via CF AI Gateway (invoking-gemini) | ✓ | ✓ | ✓ |
| This skill's httpx fan-out (raw Anthropic API) | ✓ | last resort | last resort |
Primary discriminator — check the tool list, not the filesystem. If an Agent,
Task, or Workflow tool is callable, native subagents exist. That single fact
decides the row. Everything below is elaboration.
Use them. Do not hand-roll from this skill. The managed runtime gives
16-concurrent / 1000-agent ceilings, an approval gate, adversarial cross-review,
and in-session resume — all of which this skill would reimplement worse. Route
model and effort per agent-routing (calibrated on 300 measured Haiku calls);
do not re-derive that here.
Cowork adds one option Claude Code doesn't: subagents can be declared rather
than spawned ad hoc, as agents/*.md in a plugin — frontmatter name,
description, model, effort, maxTurns, tools, disallowedTools,
skills, memory, background, isolation: worktree. They appear as
plugin-name:agent-name. Note hooks, mcpServers, and permissionMode are
refused in plugin agents for security, so a declared agent inherits the session's
MCP connections and cannot bring its own.
Reach back into this skill on those surfaces only for what the runtime lacks:
stall detection, or a long-lived ConversationThread. Inter-agent messaging is
NOT on that list — the runtime ships SendMessage and ListAgents, and
AgentPool reimplements them worse.
SendMessage / ListAgentsListAgents discovers reachable agents; SendMessage delivers plain text to one
by name or id. Both reach subagents, agent-team teammates, and independent
sessions. Official docs: code.claude.com/docs/en/cross-session-messaging
(shipped v2.1.224, macOS and Linux).
Four measured behaviors the docs do not state. Each cost a round trip to find;
full method and verbatim receipts in oaustegard/experiments →
subagent-messaging/RESULTS.md.
from attribute. For subagents
that value is the agent type (general-purpose), not an address, and the
send fails with No agent named 'general-purpose' is reachable. Two
same-type peers emit identical from values, so it cannot distinguish
senders even in principle. Both the SendMessage description and the harness
footer on every delivered message instruct otherwise. Capture the agentId
from the spawn result and address that.ListAgents. ToolSearch("select:ListAgents") returns
No matching deferred tools found — absent, not unloaded. A subagent reaches
"main" and any address handed to it in its prompt, and nothing else. The
topology is a star through the main conversation, not a mesh: hand every peer
its siblings' ids at spawn, or they cannot coordinate.Bash call is unreachable until it surfaces.Contested: anthropics/claude-code#48160 and ruvnet/ruflo#2028 report that
subagents can receive but not originate SendMessage. A CCotw subagent
originated three sends successfully on 2026-08-12 with no
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS set. Verify origination in your own
environment before designing around either claim.
Two engines, and Gemini is the default — see subagent-delegation-protocol
in ops. Use this skill's httpx fan-out when you specifically want Claude-family
output, multi-turn threads with cached history, or inter-agent messaging.
Even where native subagents exist, Gemini is the right call for mechanical-but-large work (extractions, ports, boilerplate, schema transforms) and for a genuinely independent second opinion in a judge panel — a different model family fails differently, which is the whole point of a panel.
Call mechanics live in invoking-gemini; do not duplicate them here. Three
things that bite:
gemini-3.6-flash. The flash alias still
resolves to 3.5 until that plugin's model table regenerates.thinking_level is a string in {minimal, low, medium, high}, default
medium. Set minimal for mechanical generation or the model silently spends
its output budget reasoning — symptom is an empty or truncated response.Review is not delegable. Diff security- and protocol-critical paths line-by-line against source, run syntax/lint checks, live-test whatever is network-testable. Delegated output ships only after your own review, regardless of which model produced it or which engine ran it.
Cross-model review tools (challenge, verify_patch) keep their own model
config, often deliberately a Claude. This routing does not silently repoint them.
This skill enables programmatic API invocations for advanced workflows including parallel processing, task delegation, and multi-agent analysis using the Anthropic API.
import sys
sys.path.append('/mnt/skills/user/orchestrating-agents/scripts')
from claude_client import invoke_claude
response = invoke_claude(
prompt="Analyze this code for security vulnerabilities: ...",
model="claude-sonnet-5-5"
)
print(response)Default model is claude-sonnet-5-5 ($2/$10 per MTok); claude-opus-5-5 ($4/$20) for
open-ended work and claude-haiku-5-5 ($0.10/$0.50, prompts up to 100K tokens, 1M context)
for cheap first-pass calls. These models reject non-default sampling parameters, so
temperature / top_p / top_k are accepted by the wrappers but only sent to legacy
(4.x / 3.x) model ids. They also think adaptively; the wrappers return the joined text
blocks, never content[0].
from claude_client import invoke_parallel
prompts = [
{
"prompt": "Analyze from security perspective: ...",
"system": "You are a security expert"
},
{
"prompt": "Analyze from performance perspective: ...",
"system": "You are a performance optimization expert"
},
{
"prompt": "Analyze from maintainability perspective: ...",
"system": "You are a software architecture expert"
}
]
results = invoke_parallel(prompts, model="claude-sonnet-5-5")
for i, result in enumerate(results):
print(f"\n=== Perspective {i+1} ===")
print(result)For parallel operations with shared base context, use caching to reduce costs by up to 90%:
from claude_client import invoke_parallel
# Large context shared across all sub-agents (e.g., codebase, documentation)
base_context = """
<codebase>
...large codebase or documentation (1000+ tokens)...
</codebase>
"""
prompts = [
{"prompt": "Find security vulnerabilities in the authentication module"},
{"prompt": "Identify performance bottlenecks in the API layer"},
{"prompt": "Suggest refactoring opportunities in the database layer"}
]
# First sub-agent creates cache, subsequent ones reuse it
results = invoke_parallel(
prompts,
shared_system=base_context,
cache_shared_system=True # 90% cost reduction for cached content
)For sub-agents that need multiple rounds of conversation:
from claude_client import ConversationThread
# Create a conversation thread (auto-caches history)
agent = ConversationThread(
system="You are a code refactoring expert with access to the codebase",
cache_system=True
)
# Turn 1: Initial analysis
response1 = agent.send("Analyze the UserAuth class for issues")
print(response1)
# Turn 2: Follow-up (reuses cached system + turn 1)
response2 = agent.send("How would you refactor the login method?")
print(response2)
# Turn 3: Implementation (reuses all previous context)
response3 = agent.send("Show me the refactored code")
print(response3)For real-time feedback from sub-agents:
from claude_client import invoke_claude_streaming
def show_progress(chunk):
print(chunk, end='', flush=True)
response = invoke_claude_streaming(
"Write a comprehensive security analysis...",
callback=show_progress
)Monitor multiple sub-agents simultaneously:
from claude_client import invoke_parallel_streaming
def agent1_callback(chunk):
print(f"[Security] {chunk}", end='', flush=True)
def agent2_callback(chunk):
print(f"[Performance] {chunk}", end='', flush=True)
results = invoke_parallel_streaming(
[
{"prompt": "Security review: ..."},
{"prompt": "Performance review: ..."}
],
callbacks=[agent1_callback, agent2_callback]
)Cancel long-running parallel operations:
from claude_client import invoke_parallel_interruptible, InterruptToken
import threading
import time
token = InterruptToken()
# Run in background
def run_analysis():
results = invoke_parallel_interruptible(
prompts=[...],
interrupt_token=token
)
return results
thread = threading.Thread(target=run_analysis)
thread.start()
# Interrupt after 5 seconds
time.sleep(5)
token.interrupt()| Function | Module | Purpose |
|---|---|---|
invoke_claude() | core | Single synchronous invocation, full parameter control |
invoke_parallel() | core | Concurrent invocations, results in input order |
invoke_claude_streaming() | core | Single invocation, token-by-token callback |
invoke_parallel_streaming() | core | Concurrent invocations with per-agent stream callbacks |
invoke_parallel_interruptible() | core | Concurrent invocations cancellable mid-flight |
ConversationThread | core | Stateful multi-turn thread with cached history |
StallDetector | core | Flags agents idle beyond a timeout |
TaskTracker | task_state | Tracks task status across an orchestration run |
invoke_with_retry() | orchestration | Single invocation with backoff on transient errors |
invoke_parallel_managed() | orchestration | Concurrency-limited parallel run with retry, stall hooks, reconciliation |
Full signatures, parameters, and worked examples for each: references/function-reference.md.
See references/workflows.md for detailed examples including:
For autonomous sub-agents that should execute without asking questions:
from claude_client import invoke_claude, EXECUTE_MODE
response = invoke_claude(
prompt="Review auth.py for SQL injection vulnerabilities",
system=f"You are a security expert.\n\n{EXECUTE_MODE}"
)EXECUTE_MODE encodes these principles (adapted from OpenAI Codex):
For workflows where multiple agents need to communicate:
from agent_pool import AgentPool
pool = AgentPool(
shared_system="You are reviewing the auth module of a web app.",
max_depth=3, # prevent recursive spawn explosion
max_agents=10,
)
# Spawn named agents with roles
pool.spawn("security", system=f"Focus on vulnerabilities.\n\n{pool.EXECUTE_MODE}")
pool.spawn("perf", system=f"Focus on performance.\n\n{pool.EXECUTE_MODE}")
# Run turns (pending inter-agent messages auto-injected)
sec_result = pool.run("security", "Review the login flow")
# Agent-to-agent messaging
pool.send("security", to="perf",
content="Auth does N+1 queries in the session check loop",
trigger_turn=True) # auto-runs perf with this context
# Broadcast to all agents
pool.broadcast("security", "Auth uses bcrypt cost=12, 200ms per hash")
# Query pool state
pool.agents() # ["security", "perf"]
pool.agent_info("perf") # {name, depth, children, pending_messages, turns}For complex workflows where agent creation might fail:
from agent_pool import AgentPool
pool = AgentPool(shared_system="Code review team")
# Reservation pattern: name is reserved, rolled back on exception
with pool.reserve("analyst", parent="lead") as res:
res.configure(system="You analyze code complexity.", model="claude-opus-5-5")
# If configure or any other work raises, the name is released
# Agent "analyst" is now live
# Depth limits prevent unbounded recursion
pool.spawn("sub-analyst", parent="analyst") # depth=2, OK
pool.spawn("sub-sub", parent="sub-analyst") # depth=3, raises ValueError| Pattern | Use When |
|---|---|
invoke_parallel() | Independent tasks, no inter-agent communication needed |
AgentPool | Agents need to share findings, build on each other's work, or have parent/child relationships |
invoke_parallel_managed() | Independent tasks with retry, stall detection, concurrency limits |
Prerequisites:
Install anthropic library:
uv pip install anthropicConfigure the API key as a file the shell reads directly — never as something a tool call returns.
On claude.ai the project's files are mounted at /mnt/project, so the key can
be sourced without ever entering context:
set -a; . /mnt/project/ANTHROPIC.env 2>/dev/null; set +a⚠️ Do not use project_read to fetch a credential, on any surface. Small
docs are returned inline, so the key lands in the transcript — verified
2026-07-30: the documented "large text is written to a local file" branch does
not fire even at 64 KB. In Cowork there is no /mnt/project mount at all and
no safe read path, so the key must arrive by a route the shell can read
(synced skill directory, or fetched by a script from the CF config store).
Writing is safe in both directions — project_write with local_path keeps
contents out of context — but reading is not.
Get your API key: https://console.anthropic.com/settings/keys
Installation check:
python3 -c "import anthropic; print(f'✓ anthropic {anthropic.__version__}')"The module provides comprehensive error handling:
from claude_client import invoke_claude, ClaudeInvocationError
try:
response = invoke_claude("Your prompt here")
except ClaudeInvocationError as e:
print(f"API Error: {e}")
print(f"Status: {e.status_code}")
print(f"Details: {e.details}")
except ValueError as e:
print(f"Configuration Error: {e}")Common errors:
For detailed caching workflows and best practices, see references/workflows.md.
Token efficiency:
Rate limits:
Cost management:
claude-haiku-5-5) for simple tasksUse parallel invocations for independent tasks only
Test with small batches first
Loading this skill costs roughly 2k tokens. On surfaces with native subagents the routing table at the top is usually all you need — read it, spawn natively, and skip the rest of the file.
Routing companions — read these before choosing an engine:
agent-routing skill — model + effort selection for native subagents
(Haiku/Sonnet/Opus, cascades, verifier gates). Calibrated on measured data.
Applies to Cowork and Claude Code; explicitly not to claude.ai.invoking-gemini skill — call mechanics for the CF AI Gateway path, model
table, and thinking_level semantics.subagent-delegation-protocol (ops config) — why Gemini is the claude.ai
default, the Sonnet fallback config, and the non-delegable-review rule.This skill's own internals:
© oaustegard, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 13 other files (scripts, references) in orchestrating-agents of oaustegard/claude-skills.
Open the folder on GitHubat commit 6fc82b8
Orchestrating Agents next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Orchestrating Agents this skilloaustegard/claude-skills | 150 | — | ~4.8k | Automated safety check: Pass | MIT | |
| OMA Multi-Agent Orchestratorfirst-fluke/oh-my-agent | 1.3k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Swarm Parallel Dispatchlangchain-ai/langchain-skills | 1.3k | — | ~3k | Automated safety check: Pass | MIT | |
| Agents Project Coordinatorasgeirtj/system_prompts_leaks | 69k | — | ~2.9k | Automated safety check: Pass | CC0-1.0 | |
| Cursor Orchestratecursor/plugins | 10k | — | ~1.1k | Automated safety check: Pass | None | |
| Launching Agent Teamslexler/skill-factory | 239 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 |
first-fluke/oh-my-agent
Splits a complex feature into prioritized tasks, spawns specialist CLI subagents in parallel, tracks them through shared memory and verifies each result.
langchain-ai/langchain-skills
Fans a list of independent items out to subagents in parallel, merges the results back into a table and supports retrying only the rows that failed.
asgeirtj/system_prompts_leaks
Runs a goal as a project in which the agent coordinates separate agent threads, judging when to split the work, and interviews you first when nothing can be verified.
cursor/plugins
Splits a large goal into a tree of parallel Cursor cloud agents, with planners, workers and verifiers coordinated by a script and reporting through structured handoffs.
lexler/skill-factory
Plans and launches Claude Code agent teams with distinct roles, right-sized tasks and detailed spawn prompts, and says when subagents or worktrees fit better.
vlinx-io/VelaTerm
Explicitly spawn a standalone child session under the current vlx-term session, passing the task in as its first message (mirrors spawntask).
oaustegard/claude-skills
Deprecated sampler that captures short windows of the Bluesky firehose, clusters trending terms and builds an HTML report; replaced by the browsing-bluesky skill.
oaustegard/claude-skills
Builds interactive Vega-Lite charts from uploaded data: analyzes the fields, picks five to ten fitting chart types, and produces a React artifact with the data embedded inline.
oaustegard/claude-skills
Builds self-contained single-file HTML pages such as reports, decks, postmortems, flowcharts and prototypes from a small spec using a bundled Python composer and templates.
oaustegard/claude-skills
Rewrites model-sounding prose into plain technical writing and checks that every claim survives, for PR text, docs, commit messages and similar drafts.
oaustegard/claude-skills
Zero-shot univariate time series forecasting using the Reverso foundation model (NumPy/Numba CPU-only inference).
oaustegard/claude-skills
Guides building standards-based Preact apps with native-first choices, HTM syntax, import maps and vendored ESM, from single-file demos to larger builds.
Works with
Categories
Orchestrates parallel API instances, delegated sub-tasks, and multi-agent workflows with streaming and tool-enabled delegation patterns. Orchestrating Agents is an agent skill from oaustegard/claude-skills. Orchestrates parallel API instances, delegated sub-tasks, and multi-agent workflows with streaming and tool-enabled delegation patterns.
Orchestrating Agents fits situations like: parallel analysis; multi-perspective reviews; complex task decomposition.
Run `npx skills add oaustegard/claude-skills --skill orchestrating-agents -a claude-code`. Or copy the skill folder (orchestrating-agents in oaustegard/claude-skills) into .claude/skills/orchestrating-agents in your project. Claude Code loads it when a task matches its description.
Run `npx skills add oaustegard/claude-skills --skill orchestrating-agents -a codex`. Or copy the skill folder (orchestrating-agents in oaustegard/claude-skills) into .agents/skills/orchestrating-agents in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add oaustegard/claude-skills --skill orchestrating-agents -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/orchestrating-agents, .gemini/skills/orchestrating-agents, .github/skills/orchestrating-agents and .opencode/skills/orchestrating-agents in your project.
Going by SKILL.md and its folder, Orchestrating Agents needs Python for the scripts in its folder, the command-line tools its instructions call (uv and python3) and credentials named ANTHROPIC_API_KEY. Our summary lists: Python 3.
SKILL.md names 2 domains. As links in the text: console.anthropic.com and docs.anthropic.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Orchestrating Agents is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.8k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Orchestrating Agents: OMA Multi-Agent Orchestrator (first-fluke/oh-my-agent, 1.3k stars), Swarm Parallel Dispatch (langchain-ai/langchain-skills, 1.3k stars), Agents Project Coordinator (asgeirtj/system_prompts_leaks, 69k stars) and Cursor Orchestrate (cursor/plugins, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
oaustegard (a GitHub user) maintains it in oaustegard/claude-skills, which has 150 GitHub stars. The repository holds 69 skills in this directory. The repository was last updated on October 8, 2026.
Source: oaustegard/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.