Install the "task-orchestrator" agent skill from https://github.com/jdrhyne/agent-skills/tree/main/skills/task-orchestrator into .claude/skills/task-orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "task-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.
Type 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.
skills CLI
$ npx skills add jdrhyne/agent-skills --skill task-orchestrator -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "task-orchestrator" agent skill from https://github.com/jdrhyne/agent-skills/tree/main/skills/task-orchestrator into .agents/skills/task-orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "task-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.
skills CLI
$ npx skills add jdrhyne/agent-skills --skill task-orchestrator -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "task-orchestrator" agent skill from https://github.com/jdrhyne/agent-skills/tree/main/skills/task-orchestrator into .cursor/skills/task-orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "task-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.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add jdrhyne/agent-skills --skill task-orchestrator -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "task-orchestrator" agent skill from https://github.com/jdrhyne/agent-skills/tree/main/skills/task-orchestrator into .gemini/skills/task-orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "task-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.
Installs 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).
skills CLI
$ npx skills add jdrhyne/agent-skills --skill task-orchestrator -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "task-orchestrator" agent skill from https://github.com/jdrhyne/agent-skills/tree/main/skills/task-orchestrator into .github/skills/task-orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "task-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.
skills CLI
$ npx skills add jdrhyne/agent-skills --skill task-orchestrator -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "task-orchestrator" agent skill from https://github.com/jdrhyne/agent-skills/tree/main/skills/task-orchestrator into .opencode/skills/task-orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "task-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.
Facts
Skill name
task-orchestrator
GitHub stars
240
Token cost
~3k tokens
SKILL.md length
598 words
Files
1
Skills in repo
20
Repo updated
First seen
Licence
MIT
At a glance
Autonomous multi-agent task orchestration with dependency analysis, parallel tmux/Codex execution, and self-healing heartbeat monitoring.
Works in 9 steps: Task Manifest → Dependency Rules → Execution Model → …
Large projects with multiple issues/tasks that need coordinated parallel execution
SKILL.md covers Safety Boundaries, Core Concepts, Setup Commands and Monitoring & Self-Healing, plus 6 more sections
Calls git, gh and codex; reaches github.com
What it does
Task Orchestrator is an agent skill from jdrhyne/agent-skills. Autonomous multi-agent task orchestration with dependency analysis, parallel tmux/Codex execution, and self-healing heartbeat monitoring. Use for large projects with multiple issues/tasks that need coordinated parallel execution.
Its SKILL.md is about 3k 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 Multi-agent orchestration. It works with tmux. The repository describes itself as: A collection of AI agent skills for Clawdbot, Claude Code, Codex. The licence is MIT.
When your agent uses it
Large projects with multiple issues/tasks that need coordinated parallel execution
Tasks that involve Multi-agent orchestration
Example prompts
“/task-orchestrator”
Workflow steps
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 439cd3a. It shows what the files ask for, not the result of running them.
Tool permissions
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.
Runs code
Shell commands in SKILL.md call:
git
gh
codex
From the folder's file list and the shell code blocks in SKILL.md.
Network
Hosts in commands or code, which the agent is likely to contact:
github.com
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Task Orchestrator loads about 3k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 598 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~62
When it runs· the whole SKILL.md, loaded when a task matches
~3k
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.
Safety
Auto-check passed
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.
Download SKILL.mdSave it as .claude/skills/task-orchestrator/SKILL.md (or your agent's skills folder).
name
task-orchestrator
description
Autonomous multi-agent task orchestration with dependency analysis, parallel tmux/Codex execution, and self-healing heartbeat monitoring. Use for large projects with multiple issues/tasks that need coordinated parallel execution.
Task Orchestrator
Autonomous orchestration of multi-agent builds using tmux + Codex with self-healing monitoring.
Load the senior-engineering skill alongside this one for engineering principles.
Safety Boundaries
Do not launch parallel workers for tasks with overlapping write scope until the dependency is resolved.
Do not push branches, merge work, or self-heal by guessing when human review is required.
Do not store secrets in manifests, logs, prompts, or tmux pane captures.
Do not continue retrying a failing task indefinitely; stop and surface the blocker after bounded retries.
Core Concepts
1. Task Manifest
A JSON file defining all tasks, their dependencies, files touched, and status.
# Fetch all open issues
gh issue list --repo OWNER/REPO --state open --json number,title,body,labels > issues.json
# Group by files mentioned in issue body
# Tasks touching same files should serialize
Create Worktrees
bash
# For each task, create isolated worktree
cd "$WORKDIR/repo"
git worktree add -b fix/issue-N "$WORKDIR/task-tN" main
Launch Tmux Sessions
bash
SOCKET="$WORKDIR/orchestrator.sock"
# Create session for task
tmux -S "$SOCKET" new-session -d -s "task-tN"
# Launch Codex (uses gpt-5.2-codex with reasoning_effort=high from ~/.codex/config.toml)
# Note: Model config is in ~/.codex/config.toml, not CLI flag
tmux -S "$SOCKET" send-keys -t "task-tN" \
"cd $WORKDIR/task-tN && codex --yolo 'Fix issue #N: DESCRIPTION. Run tests, commit with good message, push to origin.'" Enter
Monitoring & Self-Healing
Progress Check Script
bash
#!/bin/bash
# check_progress.sh - Run via heartbeat
WORKDIR="$1"
SOCKET="$WORKDIR/orchestrator.sock"
MANIFEST="$WORKDIR/manifest.json"
STALL_THRESHOLD_MINS=20
check_session() {
local session="$1"
local task_id="$2"
# Capture recent output
local output=$(tmux -S "$SOCKET" capture-pane -p -t "$session" -S -50 2>/dev/null)
# Check for completion indicators
if echo "$output" | grep -qE "(All tests passed|Successfully pushed|❯ $)"; then
echo "DONE:$task_id"
return 0
fi
# Check for errors
if echo "$output" | grep -qiE "(error:|failed:|FATAL|panic)"; then
echo "ERROR:$task_id"
return 1
fi
# Check for stall (prompt waiting for input)
if echo "$output" | grep -qE "(\? |Continue\?|y/n|Press any key)"; then
echo "STUCK:$task_id:waiting_for_input"
return 2
fi
echo "RUNNING:$task_id"
return 0
}
# Check all active sessions
for session in $(tmux -S "$SOCKET" list-sessions -F "#{session_name}" 2>/dev/null); do
check_session "$session" "$session"
done
Self-Healing Actions
When a task is stuck, the orchestrator should:
Waiting for input → Send appropriate response
bash
tmux -S "$SOCKET" send-keys -t "$session" "y" Enter
Error/failure → Capture logs, analyze, retry with fixes
# Check git log for recent commits
cd "$WORKDIR/$task_id"
LAST_COMMIT=$(git log -1 --format="%ar" 2>/dev/null)
# If no commits in threshold, restart
Heartbeat Cron Setup
bash
# Add to cron (every 15 minutes)
cron action:add job:{
"label": "orchestrator-heartbeat",
"schedule": "*/15 * * * *",
"prompt": "Check orchestration progress at WORKDIR. Read manifest, check all tmux sessions, self-heal any stuck tasks, advance to next phase if current is complete. Do NOT ping human - fix issues yourself."
}
Workflow: Full Orchestration Run
Step 1: Analyze & Plan
bash
# 1. Fetch issues
gh issue list --repo OWNER/REPO --state open --json number,title,body > /tmp/issues.json
# 2. Analyze for dependencies (files mentioned, explicit deps)
# Group into phases:
# - Phase 1: Critical/blocking issues (no deps)
# - Phase 2: High priority (may depend on Phase 1)
# - Phase 3: Medium/low (depends on earlier phases)
# 3. Within each phase, identify:
# - Parallel batch: Different files, no deps → run simultaneously
# - Serial batch: Same files or explicit deps → run in order
Step 2: Create Manifest
Write manifest.json with all tasks, dependencies, file mappings.
Step 3: Launch Phase 1
bash
# Create worktrees for Phase 1 tasks
for task in phase1_tasks; do
git worktree add -b "fix/issue-$issue" "$WORKDIR/task-$id" main
done
# Launch tmux sessions
for task in phase1_parallel_batch; do
tmux -S "$SOCKET" new-session -d -s "task-$id"
tmux -S "$SOCKET" send-keys -t "task-$id" \
"cd $WORKDIR/task-$id && codex --model gpt-5.2-codex-high --yolo '$PROMPT'" Enter
done
Step 4: Monitor & Self-Heal
Heartbeat checks every 15 mins:
Poll all sessions
Update manifest with progress
Self-heal stuck tasks
When all Phase N tasks complete → launch Phase N+1
# After all PRs merged or work complete
tmux -S "$SOCKET" kill-server
cd "$WORKDIR/repo"
for task in all_tasks; do
git worktree remove "$WORKDIR/task-$id" --force
done
rm -rf "$WORKDIR"
Always use GPT-5.2-codex high for complex work: --model gpt-5.2-codex-high
Clear prompts — Include issue number, description, expected outcome, test instructions
Atomic commits — Tell Codex to commit after each logical change
Push early — Push to remote branch so progress isn't lost if session dies
Checkpoint logs — Capture tmux output periodically to files
Phase gates — Don't start Phase N+1 until Phase N is 100% complete
Self-heal aggressively — If stuck >10 mins, intervene automatically
Browser relay limits — If CDP automation is blocked, use iframe batch scraping or manual browser steps
Integration with Other Skills
senior-engineering: Load for build principles and quality gates
coding-agent: Reference for Codex CLI patterns
github: Use for PR creation, issue management
Lessons Learned (2026-01-17)
Codex Sandbox Limitations
When using codex exec --full-auto, the sandbox:
No network access — git push fails with "Could not resolve host"
Limited filesystem — Can't write to paths like ~/nuri_workspace
Heartbeat Detection Improvements
The heartbeat should check for:
Shell prompt idle — If tmux pane shows username@hostname path %, worker is done
Unpushed commits — git log @{u}.. --oneline shows commits not on remote
Push failures — Look for "Could not resolve host" in output
When detected, the orchestrator (not the worker) should:
Push the commit from outside the sandbox
Create the PR via gh pr create
Update manifest and notify
Recommended Pattern
bash
# In heartbeat, for each task:
cd /tmp/orchestrator-*/task-tN
if tmux capture-pane shows shell prompt; then
# Worker finished, check for unpushed work
if git log @{u}.. --oneline | grep -q .; then
git push -u origin HEAD
gh pr create --title "$(git log --format=%s -1)" --body "Closes #N" --base main
fi
fi
Task 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.
Launches, monitors and organizes AI coding agent sessions such as Claude Code or Codex inside tmux, tracking status, capturing output and managing git worktrees for parallel branches.
Starts, monitors and organizes coding agent sessions that run in tmux through the aoe command, including groups, profiles and worktree-based parallel work.
Shows one digest of coding-agent sessions across your connected machines and lets you open, read, steer, approve, stop and close them, over Herdr, tmux or MSP.
Autonomous multi-agent task orchestration with dependency analysis, parallel tmux/Codex execution, and self-healing heartbeat monitoring. Task Orchestrator is an agent skill from jdrhyne/agent-skills. Autonomous multi-agent task orchestration with dependency analysis, parallel tmux/Codex execution, and self-healing heartbeat monitoring.
When should I use Task Orchestrator?
Task Orchestrator fits situations like: large projects with multiple issues/tasks that need coordinated parallel execution; tasks that involve Multi-agent orchestration.
How do I install Task Orchestrator in Claude Code?
Run `npx skills add jdrhyne/agent-skills --skill task-orchestrator -a claude-code`. Or copy the skill folder (skills/task-orchestrator in jdrhyne/agent-skills) into .claude/skills/task-orchestrator in your project. Claude Code loads it when a task matches its description.
How do I install Task Orchestrator in Codex?
Run `npx skills add jdrhyne/agent-skills --skill task-orchestrator -a codex`. Or copy the skill folder (skills/task-orchestrator in jdrhyne/agent-skills) into .agents/skills/task-orchestrator in your project. Codex loads it when a task matches its description.
Can I use Task Orchestrator in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jdrhyne/agent-skills --skill task-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/task-orchestrator, .gemini/skills/task-orchestrator, .github/skills/task-orchestrator and .opencode/skills/task-orchestrator in your project.
What does Task Orchestrator need to run?
Going by SKILL.md and its folder, Task Orchestrator needs the command-line tools its instructions call (git, gh and codex).
Does Task Orchestrator access the network?
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Is Task Orchestrator safe to install?
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.
What licence does Task Orchestrator use?
Task Orchestrator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Task Orchestrator use?
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
What are the alternatives to Task Orchestrator?
Skills that share tags, products or a category with Task Orchestrator: Agent of Empires Session Manager (agent-of-empires/agent-of-empires, 3.3k stars), Agent of Empires Session Manager (agent-of-empires/agent-of-empires, 3.3k stars), Clawteam (win4r/ClawTeam-OpenClaw, 1.5k stars) and Fleet Manager for Agent Sessions (asgeirtj/system_prompts_leaks, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Task Orchestrator?
jdrhyne (a GitHub user) maintains it in jdrhyne/agent-skills, which has 240 GitHub stars. The repository holds 20 skills in this directory. The repository was last updated on August 30, 2026.
Source: jdrhyne/agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.