promptgarten đŸŒ±
🌍 ZH
Guide●●○5 min · +40 XP

Mode headless : faire tourner des agents sans interaction

En mode headless ou non-interactif, un agent IA tourne sans fenĂȘtre de chat – idĂ©al pour les scripts et la CI, mais sans pouvoir te poser de questions.

Ce que signifie headless

Normalement, tu discutes en direct avec un agent : il pose une question, tu rĂ©ponds, il continue. En mode headless ou non-interactif, ce dialogue disparaĂźt. Tu fournis un prompt en argument ou via un pipe, l'agent le traite et renvoie une seule rĂ©ponse Ă  la fin – sans question intermĂ©diaire, sans fenĂȘtre de chat.

À quoi ça ressemble dans Claude Code

La commande claude -p "Trouve et corrige le bug dans auth.py" dĂ©marre Claude Code en mode non-interactif. Tu peux aussi envoyer des donnĂ©es via un pipe : cat erreur.log | claude -p "Explique la cause". La sortie peut ĂȘtre rĂ©cupĂ©rĂ©e en texte brut ou en JSON structurĂ© (--output-format json), ce qui s'intĂšgre bien dans des scripts.

À quoi ça sert

  • Traitement par lots (batch) : parcourir automatiquement de nombreux fichiers ou tickets
  • CI/CD : par exemple vĂ©rifier automatiquement chaque pull request pour des fautes de frappe ou des problĂšmes de sĂ©curitĂ©
  • TĂąches cron et automatisations planifiĂ©es, sans intervention humaine

Le risque : pas de questions en retour

La plus grande diffĂ©rence avec le mode interactif : l'agent ne peut pas te demander la permission ou une clarification. S'il tombe sur une situation oĂč il demanderait normalement, il doit dĂ©cider seul ou abandonner. C'est pourquoi le choix du mode de permissions (voir l'entrĂ©e dĂ©diĂ©e) compte particuliĂšrement en fonctionnement headless : sans rĂšgles claires, un agent peut soit faire trop peu (il abandonne sans cesse), soit trop (il exĂ©cute des actions risquĂ©es sans demander).

EXEMPLE

# Script CI : vérification des fautes de frappe pour chaque diff de PR git diff main | claude -p "Trouve les fautes de frappe dans ce diff. Pour chacune, indique 'fichier:ligne' et le problÚme, rien d'autre." --output-format json

đŸ› ïž EXERCICE — À TOI DE JOUER

Construis un appel headless simple qui résume un fichier, et observe comment il se comporte sans pouvoir poser de questions.

  1. Exécute dans un terminal : claude -p "Résume ce fichier en 3 phrases" --allowedTools "Read" avec un vrai fichier de ton projet.
  2. RĂ©pĂšte l'appel, mais indique un fichier qui n'existe pas – observe comment l'agent rĂ©agit sans demander (une erreur au lieu d'une question).
  3. Essaie --output-format json et regarde le JSON rĂ©sultant : quels champs contient-il en plus du texte lui-mĂȘme ?

✅ AUTO-VÉRIFICATION

  • ☐ As-tu pu expliquer pourquoi l'agent n'a pas simplement demandĂ©, face au fichier manquant ?
  • ☐ As-tu compris Ă  quoi sert --allowedTools dans ce contexte ?
  • ☐ Connais-tu les deux scĂ©narios (batch, CI) de l'entrĂ©e oĂč le fonctionnement headless a le plus de sens ?

QUIZ RAPIDE

Quel est le plus grand risque lorsqu'on fait tourner un agent en mode headless / non-interactif ?

SOURCES

SUJETS LIÉS

Commandes slash, hooks & Co : piloter Claude Code ●●○ContrĂŽle des coĂ»ts pour les agents IA ●●○Garde-fous (guardrails) pour agents autonomes ●●●SĂ©curitĂ© et vibe coding ●●○