ClawTeam Multi-Agent Swarm
win4r/ClawTeam-OpenClaw
Launches a swarm of specialist Hermes agents in git-worktree-isolated tmux windows with a kanban board and file-based inboxes, using built-in templates like hedge-fund and code-review.
Drive a multi-part effort to completion by dispatching, steering and verifying sub-agents — one cohesive epic, a batch of decided changes, or a coverage campaign over a population.
$ npx skills add nubjs/nub --skill orchestrator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nubjs/nub orchestrator --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/nubjs/nub.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/orchestrator .claude/skills/orchestrator && 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 "orchestrator" agent skill from https://github.com/nubjs/nub/tree/main/.claude/skills/orchestrator into .claude/skills/orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrator", 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/nubjs/nub/tree/main/.claude/skills/orchestratorType 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 nubjs/nub --skill orchestrator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nubjs/nub orchestrator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nubjs/nub.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/orchestrator .agents/skills/orchestrator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "orchestrator" agent skill from https://github.com/nubjs/nub/tree/main/.claude/skills/orchestrator into .agents/skills/orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrator", 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 nubjs/nub --skill orchestrator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nubjs/nub orchestrator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nubjs/nub.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/orchestrator .cursor/skills/orchestrator && 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 "orchestrator" agent skill from https://github.com/nubjs/nub/tree/main/.claude/skills/orchestrator into .cursor/skills/orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrator", 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/nubjs/nub.git --path .claude/skills/orchestrator--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 nubjs/nub --skill orchestrator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nubjs/nub orchestrator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nubjs/nub.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/orchestrator .gemini/skills/orchestrator && 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 "orchestrator" agent skill from https://github.com/nubjs/nub/tree/main/.claude/skills/orchestrator into .gemini/skills/orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrator", 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 nubjs/nub orchestratorInstalls 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 nubjs/nub --skill orchestrator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/nubjs/nub.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/orchestrator .github/skills/orchestrator && 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 "orchestrator" agent skill from https://github.com/nubjs/nub/tree/main/.claude/skills/orchestrator into .github/skills/orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrator", 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 nubjs/nub --skill orchestrator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install nubjs/nub orchestrator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nubjs/nub.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/orchestrator .opencode/skills/orchestrator && 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 "orchestrator" agent skill from https://github.com/nubjs/nub/tree/main/.claude/skills/orchestrator into .opencode/skills/orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrator", 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.
orchestratorDrive a multi-part effort to completion by dispatching, steering and verifying sub-agents — one cohesive epic, a batch of decided changes, or a coverage campaign over a population.
Orchestrator is an agent skill from nubjs/nub. Drive a multi-part effort to completion by dispatching, steering and verifying sub-agents — one cohesive epic, a batch of decided changes, or a coverage campaign over a population. Invoke (via the Skill tool) whenever you hold a goal set larger than one context and will delegate pieces of it: "drive this epic", "work through these fixes", "batch these changes", "measure all of X", or being handed a large multi-unit implementation. Carries the three dispatch PATTERNS (phased batch, worktree fan-out, relay) and the…
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows, covering Subagents and Git worktrees. It works with Rust. The repository describes itself as: The fast all-in-one Node.js toolkit. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 568e73a. 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.
Shell commands in SKILL.md call:
cargogitghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Orchestrator loads about 4.4k tokens when it runs. Until then it costs about 216 tokens; SKILL.md has 2,530 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); files beside SKILL.md are not scanned.
The full file from nubjs/nub at commit 568e73a, republished under its MIT licence (© nubjs). 2,530 words, ~4,408 tokens.
.claude/skills/orchestrator/SKILL.md (or your agent's skills folder).You hold the goal set, own the durable record, and dispatch sub-agents to execute pieces — reviewing, steering, spot-checking, integrating. The patterns below are different shapes of that one job; pick by the work's dependency structure, not by habit.
Not a board of independent efforts. Here every piece belongs to ONE goal. It reuses whatever machinery your harness already gives you — dispatch profiles, sub-agent messaging, worktrees, a merge queue — rather than defining its own.
Only a top-level session orchestrates. If you are yourself a dispatched sub-agent, you are one of the pieces, not the holder of the goal set — the repo-wide depth cap in AGENTS.local.md applies and you do not dispatch. Execute your scoped task inline and return; if it turns out to be a whole campaign, say so in your return and let your dispatcher run it.
One living doc is the effort — goals, architecture, resolved ambiguities with rationale, the to-do, status. Keep it behavior-level; a symbol-pinned to-do rots. Sub-agents get scoped tasks and do not edit it; you reflect each landed piece yourself. (They still merge scoped progress into the thread's own scratch notes — that is the standing exception.)
DIRECTION FROM THE HUMAN GOES INTO THE RECORD IN THE SAME TURN IT ARRIVES. Conversational memory is not a record: it dies at the next compaction and you revert to instinct. Measured — "stop chasing root causes, just grant what they need" was given, acted on for one turn, never written down, and reverted to within hours.
A long effort buries load-bearing direction under accreted findings, and compaction loses it. Give the doc a §0 — CANON section, marked persistent and non-editable.
The tell you have lost canon: you are about to state something about the design and your confidence comes from recall rather than from having just read it.
| pattern | when | shape |
|---|---|---|
| Phased batch | several small file-disjoint changes, one branch | N agents edit in one worktree → barrier → you build once → re-steer the same agents to verify |
| Worktree fan-out | long-lived independent lanes, different branch topology | each lane gets its own worktree + target; you merge and reconcile |
| Relay | one non-trivial piece | plan → implement → review → test, you verifying between stages |
The rule that decides most of it: EDITS ARE CHEAP AND PARALLELISE; BUILDS ARE EXPENSIVE AND DO NOT. N concurrent builds contend for CPU, disk, and cargo's target lock. Measured here: seven concurrent target dirs drove load to 104 on a 10-core box and one build died No space left on device; separately, lanes each building their own target took free disk from 42 GiB to 14 GiB in an afternoon. Every lane got slower, including the "parallel" ones.
Serialize only the final assembly, never the editing. The file tools reject stale edits, so concurrent edits to one worktree do not silently clobber. What collides is BUILDING (one target lock) and raw destructive git ops (reset/checkout/stash), which no batch agent should run.
EDIT (parallel). N agents, one worktree, disjoint file sets. Every prompt carries, in these words or better:
This is an edit-only phase. Do NOT build, do NOT test, do NOT run cargo at all — not even to check your work. Other agents are editing this same worktree and I run a single shared build after everyone finishes. Concurrent cargo invocations serialise on one target lock, so each of you would wait for the others. Make your edits, make them careful, and stop. Report the files you touched.
Say why, not just what — a diligent agent builds "just to be sure" unless it understands the cost. The ban is on the target lock: rustfmt --check and anything avoiding cargo is fine.
git add -A in a shared tree — stage only your own paths, or a mid-edit sweep commits another agent's half-written files under your message.BARRIER. A half-applied tree produces failures that belong to nobody. If an agent dies mid-edit, resume it with SendMessage — its partial work is in the worktree and its reasoning is in its transcript. Run cargo fmt yourself here.
BUILD (once, yours). Default to remote-build — an ephemeral GCE spot VM runs the byte-identical CI invocation for cents, and takes the load off the host entirely; a local heavy gate is the exception and needs a reason. Read the tool's own exit code; cargo … ; echo EXIT=$? ; tail makes the shell exit 0 regardless. Gate on what the batch touched: NUB_ALLOW_INCOMPLETE_RUNTIME=1 clippy --all-targets --all-features (a scoped -p without --all-targets misses test-code lints; the env var is what CI's clippy job sets, since --all-features otherwise panics on an incompletely staged runtime/); cd vendor/aube && cargo check --workspace --all-targets with its own target dir if anything reaches aube (a dependent's --all-targets never builds a path dependency's test targets, and that gap has let a broken merge through); cargo check -p <crate> --target x86_64-pc-windows-gnu for cfg(windows) code, confirming from the log that the crate compiled for that target. Read rust-build — clippy and cargo test run on different profiles, so "one build" is two artifact universes, and neither leaves a runnable binary. Triage failures against the phase-1 file map; an error spanning two agents' files is a real interface disagreement — resume BOTH.
VERIFY (parallel, warm-resumed). Verification means running the built binary and must stay compilation-free. cargo test and cargo clippy are BUILDS. Give each agent the binary's path and a real fixture per ad-hoc-test, and say cargo is yours. If a change can only be proven by a Rust unit test, that test is an EDIT — written in phase 1. Re-steer the SAME agents, never fresh ones: the agent that wrote the change knows what it rejected and where the risk sits.
When the job is to COVER a population (measure N packages, audit N files, migrate N call sites), the thing that kills it is not difficulty. Each unit of coverage surfaces something interesting, and interesting things get investigated. Measured: 20 commits landed after a coverage-measuring harness was built and 2 of them added coverage — the other 18 went to mechanisms, schemas, docs and controls, every one individually defensible.
prose-writing, impact-analysis, ad-hoc-test, remote-build — skills are NOT inherited), and say that heavy builds/tests and Linux-answerable fixture sweeps default to the VM (remote-build; --job adhoc for fixture scripts);Give a sub-agent an OUTCOME + context, not a prescribed internal structure — an agent close to the material decomposes better than you guessing from outside. A sketched "one agent per X" from the human is a shape suggestion, not a spec. Let results anneal — iterate until new passes stop yielding signal. React, don't batch-and-wait: a return is an immediate input to the next decision.
The implementer runs the gates, then verifies by RUNNING it — an ad-hoc fixture sweep against a built binary, built to FALSIFY — then reads its own diff in-thread. In-thread because the implementer knows why each choice was made; a fresh reviewer re-derives that badly. A spawned reviewer is an ESCALATION for a change that earns it (wide blast radius, security posture, serialized format, memory/UB), not a default leg.
Never let a review round substitute for the sweep. Reviewers read code and hypothesize, so they miss the silent wrong answer — the resolution that returns a different module with no error — reachable only by executing and checking which file answered.
Research and adversarial probing stay ordinary sub-agent work — they need breadth you cannot hold and they do not build. Only the edit/build/verify cycle is what the batch pattern reshapes.
gcloud-vm) for OS-privilege/kernel/installer behavior, a real browser (visual-review) for UI. Capture evidence via SendUserFile; for a privilege-escalation or first-run flow, the screenshots ARE the deliverable.CARGO_TARGET_DIR pays a full cold dependency build (~40 min contended). Serial builds self-serialize on cargo's lock; only concurrent builds need separate targets. Let scripts/rust-build.sh pick the dir rather than exporting CARGO_TARGET_DIR.Blocking waiting for file lock, or ~/.cache filling: invoke cpu-reduction, and follow rust-build-hygiene so you stop creating it. Pruning worktree CHECKOUTS reclaims almost nothing (CoW clones); the <name>-target dirs are the consumers. Judge every reclaim by df, never du.Blocking waiting for file lock on artifact directory and ps aux | grep rustc | grep <target>. Usual cause: two builds on one target, often a stopped agent's DETACHED build that TaskStop did not reap. pkill -f '<target-dir>' (artifacts stay warm), then hand it to ONE fresh foreground agent.ScheduleWakeup, re-armed each turn) so a hung sub-agent cannot end the thrust. It is a BACKSTOP — the primary wake is sub-agent completions (a live Agent-tool sub-agent; never spawn_thread, which reports to a sibling and never returns to you). You can always see a result WITHOUT a notification: reconcile directly against git log/git status, the agent's tasks/<id>.output mtime and bounded tail, and ps. Git state and output files are the truth.A block is a problem to solve, not a wall to wait behind. Infra you control → fix or recreate it. A tool or host down → route around it (Docker, ci-adhoc-test, a fresh cloud box). A held PR → advance everything it does not block. The test: what do I have the power to do about this right now? "Nothing" is a rare answer and requires having tried the levers.
fleet-empty ≠ effort-doneNever conclude the effort is done off an empty in-flight fleet. The trigger for checking completeness is a full re-read of the record's OPEN-ITEMS ledger, reconciled item-by-item against the codebase — never your memory of what you dispatched.
git log/git grep for the symbol or commit that would prove an item closed; a landed commit is not a closed item until you have confirmed a later commit did not regress it.gh pr create. Every prompt names the branch: "commit to <branch> or a branch off it; do NOT open an independent PR; report the sha for me to integrate."gh pr list --state open and git branch -a --list '<prefix>*'. Reconciling only the feature branch misses a piece already built elsewhere.Written as a nub-local skill. If it proves general across projects, promote it into the harness plugin's own source as a sibling mode — reference that machinery, don't fork it.
© nubjs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/orchestrator of nubjs/nub.
Open the folder on GitHubat commit 568e73a
Orchestrator 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 |
|---|---|---|---|---|---|---|
| Orchestrator this skillnubjs/nub | 4.4k | — | ~4.4k | Automated safety check: Pass | MIT | |
| ClawTeam Multi-Agent Swarmwin4r/ClawTeam-OpenClaw | 1.5k | 1 repos | ~2.9k | Automated safety check: Pass | MIT | |
| Agent Deckasheshgoplani/agent-deck | 1k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Clawteamwin4r/ClawTeam-OpenClaw | 1.5k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Puppetmaster Agent Orchestrationprofessorpalmer/Puppetmaster | 467 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Badstephenleo/bmad-autonomous-development | 107 | — | ~7.7k | Automated safety check: Pass | MIT |
win4r/ClawTeam-OpenClaw
Launches a swarm of specialist Hermes agents in git-worktree-isolated tmux windows with a kanban board and file-based inboxes, using built-in templates like hedge-fund and code-review.
asheshgoplani/agent-deck
agent-deck, the terminal session manager for AI coding agents.
win4r/ClawTeam-OpenClaw
Multi-agent swarm orchestration. An agent skill from win4r/ClawTeam-OpenClaw.
professorpalmer/Puppetmaster
Operates and supervises Puppetmaster, a multi-agent orchestrator, through its MCP tools or CLI, picking the right verb for edits, reviews, audits and long-running jobs.
stephenleo/bmad-autonomous-development
BMad Autonomous Development — orchestrates parallel story implementation pipelines.
entropyvortex/meta-llm-charter
Parallel strand orchestration — decompose a task into 3+ independently scoped strands, fan out real subagents (worktree-isolated when they write files), and coordinate through a session file and…
nubjs/nub
Diagnose and clear CPU, memory, and disk contention on the maintainer's dev host.
nubjs/nub
Reclaim disk on the maintainer's Mac when the volume is full or filling — ENOSPC, "no space left on device", a failed build or agent harness, or a routine sweep of Rust build residue.
nubjs/nub
Build a performance chart for nubjs.com — the SVG bar figures in blog posts, docs pages and social posts (a runtime augmentation against plain node, an install or dispatch comparison, a cross-tool…
nubjs/nub
A skill your agent uses when running a compatibility/parity AUDIT — enumerating where nub diverges from a reference it claims parity with (pnpm CLI grammar, a lockfile format, a Node behavior, a…
nubjs/nub
Run ad-hoc Nub tests and debugging probes on real local Linux guests.
nubjs/nub
Performance-trace Nub package-manager installs using the existing phase timings, structured diagnostics, and sampling-profiler workflow.
Works with
Categories
Drive a multi-part effort to completion by dispatching, steering and verifying sub-agents — one cohesive epic, a batch of decided changes, or a coverage campaign over a population. Orchestrator is an agent skill from nubjs/nub. Drive a multi-part effort to completion by dispatching, steering and verifying sub-agents — one cohesive epic, a batch of decided changes, or a coverage campaign over a population.
Orchestrator fits situations like: tasks that involve Subagents; tasks that involve Git worktrees.
Run `npx skills add nubjs/nub --skill orchestrator -a claude-code`. Or copy the skill folder (.claude/skills/orchestrator in nubjs/nub) into .claude/skills/orchestrator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nubjs/nub --skill orchestrator -a codex`. Or copy the skill folder (.claude/skills/orchestrator in nubjs/nub) into .agents/skills/orchestrator 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 nubjs/nub --skill orchestrator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/orchestrator, .gemini/skills/orchestrator, .github/skills/orchestrator and .opencode/skills/orchestrator in your project.
Going by SKILL.md and its folder, Orchestrator needs the command-line tools its instructions call (cargo, git and gh).
SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. 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. Review the folder before installing.
Orchestrator 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.4k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Orchestrator: ClawTeam Multi-Agent Swarm (win4r/ClawTeam-OpenClaw, 1.5k stars), Agent Deck (asheshgoplani/agent-deck, 1k stars), Clawteam (win4r/ClawTeam-OpenClaw, 1.5k stars) and Puppetmaster Agent Orchestration (professorpalmer/Puppetmaster, 467 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
nubjs (a GitHub organization) maintains it in nubjs/nub, which has 4,372 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on October 7, 2026.
Source: nubjs/nub on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.