agentsclimarketplace

Multi cli spawn

Skill ImL1s/agent-cli-skills/skills/multi-cli-spawn

Agent Skills wrappers for agy, Grok, Claude Code, Codex, Kimi, and Qwen — with cross-CLI parallel spawn

Install
npx -y skills add ImL1s/agent-cli-skills --skill multi-cli-spawn

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 12 days oldThe repository was created 12 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Fan out one brief to multiple coding CLIs in parallel (agy, grok, claude, codex, kimi, qwen) via spawn.sh with PID-file / process-group kill safety and per-seat .status files (RUNNING → DONE|BLOCKED). Use for multi-LLM council, parallel second opinions, or cross-provider review. Prefer foreground wait; for --no-wait poll terminal .status — never treat missing .md alone as failure. Always --no-git; orchestrator owns commits.

SKILL.md

3.6 KB, 947 tokens by cl100k_base, as published. Nobody here has run it

Multi-CLI Spawn (cross-provider parallel seats)

When to use

  • Need several providers to answer the same brief in parallel
  • Multi-LLM council / second opinions / cross-vendor review
  • You already have (or will install) the per-CLI *-cli-agent wrappers

This is not a substitute for vendor-native multi-agent inside one CLI (-T / ultracode / teamwork). Use those for fan-out within one provider; use this skill to fan-out across providers.

Why

Each vendor has native multi-agent inside one CLI (agy teamwork, Claude ultracode, Codex subagents, Grok spawn_subagent, …). This skill is the cross-CLI layer: one brief → N providers → N answer files.

Usage

./spawn.sh --outdir /tmp/council-$$ \
  -f /tmp/brief.md \
  --seat agy:readonly \
  --seat claude:ultracode \
  --seat codex:team \
  --seat grok \
  --seat kimi:readonly \
  --seat qwen:readonly \
  -C /path/to/repo \
  -t 1200s

Seat forms: name, name:readonly, name:ultracode|team, name:readonly,team, name@label (unique output key when duplicating a CLI).

Seat modifiers (comma-separated after :): readonly/r, team/ultracode/T.

Outputs

FileMeaning
<key>.logLive CLI stdout/stderr
<key>.mdFinal answer, or BLOCKED:… stub (written when the seat finishes)
<key>.pidSeat process-group id (kill target)
<key>.rcSeat exit code
<key>.statusRUNNINGDONE rc=0 | BLOCKED rc=N (atomic)
spawn.pid / spawn.statusParent: RUNNINGDONE, or SPAWNED if --no-wait
brief.mdCopied/normalized brief inside outdir

Waiting contract

  1. Default: do not poll. Run spawn.sh in the foreground (wait mode). Its exit code and CLI_AGENT_RESULT: PASS|BLOCKED <seat> lines are the completion signal.
  2. --no-wait / external watcher: wait until every seat .status is terminal (DONE / BLOCKED), e.g.:
    while grep -qlE '^RUNNING' "$OUTDIR"/*.status 2>/dev/null; do sleep 15; done
    
    Do not treat missing *.md or a dead *.pid alone as "no answer" — .md appears only when the seat finishes; pidfiles can look dead if the parent spawn was killed while seats continue.
  3. Kill only via numeric PIDs in seat *.pid files (process groups). Skip spawn.pid when iterating kill targets unless you intend to stop the parent. Never pkill -f long patterns.

Hard rules

  1. PID files only — never pkill -f with a pattern that also appears in the launcher argv
  2. Quota fail-open — provider errors / empty output → BLOCKED stub; do not retry-loop
  3. agy needs PTY — handled inside agy-exec.sh
  4. Orchestrator owns git — spawn always passes --no-git
  5. Parallel writers should use separate worktrees (-C per seat) to avoid collisions
  6. Seat rc != 0 is BLOCKED (missing binary is not a council vote)

Synthesize

Read *.md only for seats whose .status is terminal. Strictest blockers win. Divergent findings are high value. Re-run only BLOCKED seats after the user refreshes quota/auth.

See also: docs/CORRECTNESS.md, docs/FEATURES.md.

What ships with it: 4 files

19.8 KB alongside SKILL.md, 4 of them executable

lib/

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.