Synthèse automatique
Cette compétence lance quatre instances Claude Code en parallèle dans des volets tmux, envoie la même requête à toutes, collecte les résultats et produit un résumé.
Points forts
- Permet d'obtenir plusieurs réponses indépendantes simultanément
- Utilise tmux pour une visualisation et un suivi en temps réel
- Capture et résume automatiquement les résultats de toutes les instances
- Nettoyage automatique des ressources après exécution
Limites
- Nécessite tmux et un environnement shell compatible
- Les réponses peuvent être redondantes si la tâche est déterministe
- Pas de répartition de charge ni de gestion avancée des erreurs
Idéal pour explorer plusieurs solutions ou angles d'analyse en parallèle sur un même problème.
À éviter pour les tâches séquentielles ou nécessitant une réponse unique et définitive.
Analyse de sécurité
SûrThe skill spawns local tmux panes, runs a Claude CLI command, and captures output. It does not exfiltrate data or perform destructive actions. The primary risk is terminal injection via the user prompt, which is a local, self-inflicted concern and not a security vulnerability in a shared catalog context.
- •User-provided prompt is inserted directly into a bash script without sanitization, which could cause unexpected behavior if it contains special characters or escape sequences, but this does not enable exfiltration or destruction.
- •No external network calls or data exfiltration.
- •No destructive file operations outside of /tmp.
Exemples
/parallel Analyze the pros and cons of microservices architecture for a large e-commerce platform./parallel Write a Python function to reverse a linked list, exploring different approaches./parallel Suggest 5 innovative features for a note-taking app that uses AI.Parallel Claude Skill
Overview
This skill spawns 4 Claude Code instances in parallel tmux panes arranged in a 2x2 grid on the right half of the screen, sends the same prompt to all of them, waits for all to complete, gathers results, summarizes them, and cleans up.
Trigger
User invokes /parallel <prompt> where <prompt> is the task to send to all Claude instances.
Instructions
When the user invokes this skill with a prompt, execute the following steps:
Step 1: Run the launcher script
Execute this bash script, replacing <USER_PROMPT_HERE> with the user's prompt:
#!/bin/bash
PROMPT="<USER_PROMPT_HERE>"
RESULTS_DIR="/tmp/claude-parallel-results"
# Clean up previous results
rm -rf "$RESULTS_DIR"
mkdir -p "$RESULTS_DIR"
# Get original pane
ORIGINAL_PANE=$(tmux display-message -p '#{pane_id}')
echo "Original pane: $ORIGINAL_PANE"
# Step 1: Split horizontally to create right half
tmux split-window -h -p 50
# Get the new pane
sleep 0.2
PANE_A=$(tmux list-panes -F '#{pane_id}' | grep -v "^${ORIGINAL_PANE}$")
# Step 2: Split PANE_A vertically into top and bottom
tmux split-window -v -p 50 -t "$PANE_A"
sleep 0.2
# Get both right panes
ALL_PANES=$(tmux list-panes -F '#{pane_id}')
RIGHT_PANES=$(echo "$ALL_PANES" | grep -v "^${ORIGINAL_PANE}$")
PANE_TOP=$(echo "$RIGHT_PANES" | head -1)
PANE_BOT=$(echo "$RIGHT_PANES" | tail -1)
# Step 3: Split top and bottom panes horizontally
tmux split-window -h -p 50 -t "$PANE_TOP"
tmux split-window -h -p 50 -t "$PANE_BOT"
sleep 0.3
# Get final 4 new panes
ALL_PANES=$(tmux list-panes -F '#{pane_id}')
NEW_PANES=$(echo "$ALL_PANES" | grep -v "^${ORIGINAL_PANE}$")
# Save pane IDs
echo "$NEW_PANES" > "$RESULTS_DIR/pane-ids.txt"
echo "Created 4 panes: $(echo $NEW_PANES | tr '\n' ' ')"
# Launch claude in each new pane
while IFS= read -r PANE; do
tmux send-keys -t "$PANE" "claude" Enter
done <<< "$NEW_PANES"
# Wait for claude to start
sleep 3
# Send the prompt to each pane
while IFS= read -r PANE; do
tmux send-keys -t "$PANE" "$PROMPT" Enter
done <<< "$NEW_PANES"
# Wait a moment then send Enter again to confirm
sleep 1
while IFS= read -r PANE; do
tmux send-keys -t "$PANE" Enter
done <<< "$NEW_PANES"
echo "Launched 4 Claude instances. Waiting for completion..."
# Poll for completion: check for stability + prompt indicator
# A pane is "done" when content is stable AND shows the > prompt
declare -A PANE_DONE
declare -A PANE_LAST_CONTENT
TIMEOUT=600 # 10 minutes
ELAPSED=0
POLL_INTERVAL=10
while [ $ELAPSED -lt $TIMEOUT ]; do
DONE_COUNT=0
while IFS= read -r PANE; do
if [ "${PANE_DONE[$PANE]}" == "1" ]; then
((DONE_COUNT++))
continue
fi
# Capture current pane content
CURRENT=$(tmux capture-pane -t "$PANE" -p 2>/dev/null)
# Check if pane shows the > prompt (Claude is waiting for input)
if echo "$CURRENT" | tail -5 | grep -q "^>"; then
# Check if content is stable (same as last check)
if [ "${PANE_LAST_CONTENT[$PANE]}" == "$CURRENT" ]; then
PANE_DONE[$PANE]="1"
((DONE_COUNT++))
echo "Pane $PANE complete!"
fi
fi
PANE_LAST_CONTENT[$PANE]="$CURRENT"
done <<< "$NEW_PANES"
if [ $DONE_COUNT -ge 4 ]; then
echo "All 4 workers complete!"
break
fi
echo "Waiting... ($DONE_COUNT/4 complete, ${ELAPSED}s elapsed)"
sleep $POLL_INTERVAL
((ELAPSED+=POLL_INTERVAL))
done
if [ $ELAPSED -ge $TIMEOUT ]; then
echo "Warning: Timeout reached, some workers may not have completed"
fi
# Capture final output from each pane
i=1
while IFS= read -r PANE; do
tmux capture-pane -t "$PANE" -p > "$RESULTS_DIR/worker-$i.txt"
((i++))
done <<< "$NEW_PANES"
echo "Results captured to $RESULTS_DIR/"
Step 2: Read and summarize results
After the script completes, read each result file and provide a summary:
cat /tmp/claude-parallel-results/worker-1.txt
cat /tmp/claude-parallel-results/worker-2.txt
cat /tmp/claude-parallel-results/worker-3.txt
cat /tmp/claude-parallel-results/worker-4.txt
For each worker:
- Summarize the key points of their response
- Note any unique approaches or insights
- Highlight consensus or differences across workers
- Provide a synthesized recommendation if applicable
Step 3: Clean up panes
After summarizing, close the worker panes:
#!/bin/bash
ORIGINAL_PANE=$(tmux display-message -p '#{pane_id}')
PANES_TO_KILL=$(tmux list-panes -F '#{pane_id}' | grep -v "^${ORIGINAL_PANE}$")
if [ -n "$PANES_TO_KILL" ]; then
while IFS= read -r PANE; do
if [ -n "$PANE" ]; then
tmux kill-pane -t "$PANE" 2>/dev/null
fi
done <<< "$PANES_TO_KILL"
echo "Worker panes closed."
fi
Important Notes
- This only works inside a tmux session
- Workers are interactive Claude instances (you can watch them work)
- 10 minute timeout, polling every 10 seconds
- Completion detected by: content stability +
>prompt visible - Results saved to
/tmp/claude-parallel-results/
Example Usage
/parallel write a function to parse CSV files in Python
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/parallel-claude-instances-mma3jsv3/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/parallel-claude-instances-mma3jsv3' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/parallel-claude-instances-mma3jsv3/download' --output '.skill-downloads/parallel-claude-instances-mma3jsv3/SKILL.md.part' && mv '.skill-downloads/parallel-claude-instances-mma3jsv3/SKILL.md.part' '.skill-downloads/parallel-claude-instances-mma3jsv3/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Le fichier ne fournit pas un en-tête name/description exploitable pour cette procédure native. Le téléchargement reste disponible pour lecture ; utilisez le mode manuel ci-dessous.
Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/parallel-claude-instances-mma3jsv3/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Lecteur PDF
Productivite
Lit et extrait le texte de fichiers PDF (rapports, contrats, tableurs). Gère les fichiers locaux, les URL et les pièces jointes WhatsApp. Utilisez-le dès qu'un contenu PDF est nécessaire, même sans demande explicite.
Workflows de messagerie Discord
Productivite
Utilisez l'outil message pour envoyer, modifier et modérer des messages Discord avec des composants interactifs.
Aperçu interactif des verdicts
Productivite
Générer un aperçu HTML interactif des verdicts (garder/supprimer) pour la revue par le mainteneur, puis traiter le JSON de retour.