← All skills
fanout
82 / 100 · Low risk
Fine to try. Some of what it can do is expected: a coding skill usually runs build and test commands.
By hashgraph-online/awesome-codex-plugins (GitHub) · coding · 1,573 stars · scanned at commit 70b6a3a
Use when the user wants to split a goal into parallel coding-agent sessions (Claude Code, Codex, or both) on git worktrees. Plans who owns which files, freezes shared interfaces, blocks out-of-lane edits, tests all branches together, and merges in the right order. Not for a single small change.
Works with any agent that supports SKILL.md skills.
What this skill can do
Runs commands on your computer
This is disclosed by the author in the skill's SKILL.md or README. Expected for a coding skill.
Found in 34 places.
Show 17 more
- plugins/Breadstick-Crumbs/fanout/skills/fanout/claims.mjs, line 287
const claude = spawnSync(`${bin("claude")} auth status`, { cwd, shell: true, encoding: "utf8", timeout: 30000, windowsHide: true }); - plugins/Breadstick-Crumbs/fanout/skills/fanout/claims.mjs, line 290
if (spawnSync(`${bin("codex")} login status`, { cwd, shell: true, encoding: "utf8", timeout: 30000, windowsHide: true }).status === 0) return "codex"; - plugins/Breadstick-Crumbs/fanout/skills/fanout/claims.mjs, line 300
const r = spawnSync(`${bin("claude")} -p --model ${model || "sonnet"} --tools "" --setting-sources project,local --strict-mcp-config --output-format json`, - plugins/Breadstick-Crumbs/fanout/skills/fanout/claims.mjs, line 312
const r = spawnSync(process.execPath, ["-e", CODEX_WATCH, cmd], { cwd, encoding: "utf8", input: prompt, timeout: 45000, windowsHide: true }); - plugins/Breadstick-Crumbs/fanout/skills/fanout/claims.mjs, line 320
const CODEX_WATCH = `const { spawn, spawnSync } = require("node:child_process"); - plugins/Breadstick-Crumbs/fanout/skills/fanout/claims.mjs, line 323
const stop = () => { if (win) spawnSync("taskkill", ["/pid", String(p.pid), "/T", "/F"], { stdio: "ignore" }); else try { process.kill(-p.pid, "SIGKILL"); } cat - plugins/Breadstick-Crumbs/fanout/skills/fanout/demo.mjs, line 13
import { spawn, execFileSync, spawnSync } from "node:child_process"; - plugins/Breadstick-Crumbs/fanout/skills/fanout/demo.mjs, line 23
const g = (cwd, ...a) => execFileSync("git", a, { cwd, encoding: "utf8", stdio: ["ignore", "pipe", "pipe"] }); - plugins/Breadstick-Crumbs/fanout/skills/fanout/demo.mjs, line 134
spawnSync(process.execPath, [SCRIPT, "start", "prices need a currency"], { cwd: wt.prices, encoding: "utf8", env: { ...process.env, FANOUT_CLAIM_JUDGE: "off" } - plugins/Breadstick-Crumbs/fanout/skills/fanout/demo.mjs, line 166
const works = spawnSync(process.execPath, ["check.mjs"], { cwd: repo, encoding: "utf8" }).status === 0; - plugins/Breadstick-Crumbs/fanout/skills/fanout/draft.mjs, line 13
import { spawnSync } from "node:child_process"; - plugins/Breadstick-Crumbs/fanout/skills/fanout/draft.mjs, line 37
const files = new Set(spawnSync("git", ["ls-files"], { cwd: root, encoding: "utf8" }).stdout.split("\n").filter(Boolean)); - plugins/Breadstick-Crumbs/fanout/skills/fanout/fanout.mjs, line 13
import { execFileSync, spawnSync, spawn } from "node:child_process"; - plugins/Breadstick-Crumbs/fanout/skills/fanout/fanout.mjs, line 104
return execFileSync("git", args, { cwd, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"], windowsHide: true }); - plugins/Breadstick-Crumbs/fanout/skills/fanout/fanout.mjs, line 249
const exec = (spawnSync("git", ["--exec-path"], { encoding: "utf8" }).stdout ?? "").trim(); // <Git>/mingw64/libexec/git-core - plugins/Breadstick-Crumbs/fanout/skills/fanout/fanout.mjs, line 264
spawnSync(cmd, { cwd, shell: planShell(), encoding: "utf8", env: { ...process.env, FANOUT_COPY: copyName(cwd) } }); - plugins/Breadstick-Crumbs/fanout/skills/fanout/fanout.mjs, line 272
const gitZ = (cwd, args) => (spawnSync("git", ["--literal-pathspecs", args[0], "-z", ...args.slice(1)], { cwd, encoding: "utf8", maxBuffer: 64 << 20 }).stdout ?
and 14 more places
Downloads and installs other software
The author does not mention this.
Found in 1 place.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'fanout' ] || [ -L ~/.agents/skills/'fanout' ]; then echo 'A skill folder named fanout already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/hashgraph-online/awesome-codex-plugins' "$d" && git -C "$d" checkout --quiet '70b6a3a3a7c774671e45af646306e1448baf0511' -- 'plugins/Breadstick-Crumbs/fanout/skills/fanout' && mkdir -p ~/.agents/skills && cp -R "$d"/'plugins/Breadstick-Crumbs/fanout/skills/fanout' ~/.agents/skills/'fanout' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'fanout' ~/.claude/skills/'fanout' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for hashgraph-online/awesome-codex-plugins shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/hashgraph-online/awesome-codex-plugins/)
Score history
| Date | Version | Score |
|---|
| 2026-11-14 | 70b6a3a | 82 |
| 2026-11-13 | 3e1e6b2 | 82 |
| 2026-11-12 | 6d2e63f | 82 |
| 2026-11-11 | 4070676 | 82 |
| 2026-11-10 | f620aba | 82 |
| 2026-11-09 | 3062ea3 | 82 |
| 2026-11-08 | 057d789 | 82 |