parallel-execution
Execute multiple Claude Code agents in parallel using the cpo CLI tool. Use when running parallel tasks, monitoring execution, or understanding the execution workflow.
When & Why to Use This Skill
This Claude skill enables high-efficiency parallel agent execution through the Claude Parallel Orchestrator (cpo) CLI and SDK. It streamlines complex development workflows by automating git worktree isolation, managing multi-wave task dependencies, and providing real-time execution monitoring. By allowing multiple Claude agents to work simultaneously on partitioned tasks, it significantly accelerates large-scale coding projects while maintaining codebase integrity and providing comprehensive logging and reporting.
Use Cases
- Large-Scale Refactoring: Simultaneously updating multiple independent modules or services within a repository to reduce total development time.
- CI/CD Pipeline Integration: Using the Claude Code SDK to programmatically trigger and orchestrate parallel agent tasks during automated build or deployment phases.
- Complex Feature Decomposition: Executing a sequence of dependent tasks where 'Wave 1' agents build core components and 'Wave 2' agents implement features relying on those components.
- Isolated Bug Fixing: Running multiple agents in separate git worktrees to investigate and fix different issues in parallel without workspace conflicts.
- System-Wide Documentation: Deploying agents across various directories to generate or update technical documentation simultaneously.
| name | parallel-execution |
|---|---|
| short | Parallel agent execution with cpo |
| description | Execute multiple Claude Code agents in parallel using the cpo CLI tool. Use when running parallel tasks, monitoring execution, or understanding the execution workflow. |
| when | User wants to execute parallel agents, run cpo commands, monitor parallel task progress, or understand the execution workflow |
Parallel Execution
Execute multiple Claude Code agents in parallel using the cpo (Claude Parallel Orchestrator) CLI.
Primary Method: cpo CLI
The cpo tool handles all execution complexity: git worktrees, wave dependencies, and progress monitoring.
Installation
pip install claude-parallel-orchestrator
# or
pipx install claude-parallel-orchestrator
Commands
| Command | Description |
|---|---|
cpo validate <dir> |
Validate manifest structure and prompts |
cpo run <dir> |
Execute all waves (respects dependencies) |
cpo status <dir> |
Check execution status |
Basic Workflow
# 1. Validate before execution
cpo validate parallel/TS-0042-inventory-system/
# 2. Execute parallel agents
cpo run parallel/TS-0042-inventory-system/
# 3. Monitor progress (in another terminal)
cpo status parallel/TS-0042-inventory-system/
What cpo run Does
- Validates manifest.json structure and prompt files
- Creates git worktrees for each task (isolated workspaces)
- Launches agents in parallel (respects wave dependencies)
- Monitors progress with live output
- Collects results in
logs/andreport.json
Wave Execution
Tasks execute in waves based on dependencies:
Wave 1: task-001, task-002, task-003 (parallel - no deps)
↓ wait for completion
Wave 2: task-004, task-005 (parallel - depend on Wave 1)
↓ wait for completion
Wave 3: task-006 (sequential - depend on Wave 2)
Each wave waits for all tasks in the previous wave to complete before starting.
Agent Permissions
Agents run with --dangerously-skip-permissions because they're isolated in worktrees:
- Each agent runs in its own git worktree
- Agents can only affect files in their workspace
- Main branch remains protected until explicit merge
Alternative: Claude Code SDK
For programmatic orchestration in CI/CD or custom workflows:
// orchestrator.ts
import { ClaudeAgent } from '@anthropic-ai/claude-agent-sdk';
import { readdir, readFile } from 'fs/promises';
import { join } from 'path';
async function runParallelTasks(parallelDir: string) {
const tasksDir = join(parallelDir, 'tasks');
const contextFile = join(parallelDir, 'context.md');
const context = await readFile(contextFile, 'utf-8');
const tasks = await readdir(tasksDir);
const agents = tasks
.filter(f => f.endsWith('.md'))
.map(async (taskFile) => {
const taskPath = join(tasksDir, taskFile);
const taskContent = await readFile(taskPath, 'utf-8');
const agent = new ClaudeAgent({
systemPrompt: `You are implementing a task.
Context: ${context}
Follow contracts in ${parallelDir}/contracts/.`,
});
return agent.run(`Execute this task:\n\n${taskContent}`);
});
const results = await Promise.all(agents);
return results;
}
runParallelTasks('parallel/TS-0042-inventory-system');
Completion Detection
Agents signal completion by creating a marker file:
touch .claude-task-complete
This enables:
cpoto detect task completion- Wave coordination (wait for all tasks before next wave)
- Status reporting
Execution Patterns
| Method | Best For | Parallelism |
|---|---|---|
| cpo CLI | Standard workflow, most users | True parallel with wave deps |
| Claude Code SDK | CI/CD, custom orchestration | Fully programmable |
Tips for Success
- Validate first: Always run
cpo validatebeforecpo run - Start small: Test with 2-3 parallel agents before scaling up
- Monitor resources: Limit concurrent agents based on machine capacity
- Check logs: Review
logs/task-*.logfor debugging - Run integration: Use
/parallel-integrateafter all tasks complete
Output Files
After execution:
parallel/TS-0042-inventory-system/
logs/
task-001.log # Agent output
task-002.log
...
report.json # Execution summary
integration-report.md # Generated by /parallel-integrate
Related
parallel-agentsskill: Overall workflow and directory structureparallel-decomposeskill: Creating tasks before executionparallel-prompt-generatorskill: Generate prompts from task specsagent-toolsskill: Tool permissions (for granular control)/parallel-integratecommand: Post-execution verification