Aller au contenu
Mastering Claude

Accueil / Gestes courants

Gestes courants9 minApplication

Mode headless, styles de sortie et tâches de fond

Le mode headless exécute Claude Code sans interface interactive avec -p, --output-format détermine si la sortie reste du texte ou devient un objet JSON exploitable par un script, avec le coût total inclus, et run_in_background laisse une commande longue continuer sans bloquer la conversation.

Le mode headless exécute Claude Code sans interface interactive, en une seule commande qui rend son résultat et s'arrête. Le drapeau -p (ou --print) déclenche ce mode, avec un prompt donné en argument.

claude -p "Resume les fichiers modifies dans ce depot" --output-format json

Trois formats de sortie pour trois usages

Le paramètre --output-format accepte trois valeurs. text, la valeur par défaut, rend une réponse en langage naturel destinée à un humain. json rend un seul objet structuré, avec le résultat, l'identifiant de session et le coût total en dollars ainsi qu'une répartition par modèle, une forme qu'un script peut lire sans analyser du texte libre. stream-json rend la même information en JSON Lignes, un objet par ligne, utile quand un programme veut réagir avant la fin complète de l'exécution. Un drapeau --bare saute la découverte automatique des hooks, skills, commandes personnalisées, sous-agents, plugins, serveurs MCP, mémoire automatique et fichiers CLAUDE.md au démarrage, ce qui accélère le lancement. La documentation officielle le recommande pour les appels scriptés et signale qu'il pourrait devenir la valeur par défaut de -p dans une version future. Ce gain de vitesse a une contrepartie que rien ne signale à l'écran : le mode bare ne lit jamais les identifiants OAuth ni le trousseau du système, il ne s'appuie donc pas sur la connexion par abonnement, et un script qui l'utilise doit poser la variable ANTHROPIC_API_KEY dans son environnement pour s'authentifier auprès de l'API Anthropic.

Laisser une commande longue tourner sans bloquer

Une commande longue lancée par l'outil Bash de Claude Code peut demander run_in_background: true plutôt que d'attendre sa fin. L'outil rend alors immédiatement un identifiant de tâche, la commande continue en arrière plan, et sa sortie se relit ensuite avec l'outil Read. Le raccourci Ctrl+B pendant qu'une commande tourne fait la même bascule à la main, et la commande /tasks liste et arrête les tâches en cours.

Ce basculement se produit aussi tout seul : une commande qui atteint son délai d'expiration sans avoir fini passe automatiquement en tâche de fond plutôt que d'être coupée net, sauf pour trois familles de commandes qui restent bloquantes jusqu'au bout, celles qui commencent par sleep, celles qui contiennent git, et les commandes trop composées pour être analysées par le mécanisme de sécurité. Combiner les deux gestes, mode headless pour l'entrée et la sortie, tâche de fond pour la durée, rend un script capable de piloter Claude Code sans jamais attendre en bloquant devant un terminal. L'identifiant de session que --output-format json rend explicitement est le même que celui que reprend chaque geste rapide du terminal avec --resume.

Figure 1

D'une commande headless à une sortie exploitable par un script

01
Entrée en mode headless
Le drapeau -p envoie un prompt à Claude Code sans ouvrir d'interface interactive.
02
Exécution non interactive
Claude Code traite la demande seul, sans attendre de réponse humaine entre les étapes.
03
Sortie choisie
Le paramètre --output-format détermine si le résultat sort en texte, en un objet JSON unique, ou en JSON Lignes en flux.
04
Script lit le résultat
Un programme externe récupère la sortie structurée, avec le coût total et l'identifiant de session, sans analyser du texte libre.
05
Commande longue en tâche de fond
Si une étape dure trop longtemps, run_in_background la fait continuer pendant que le script reste libre de la suite.
La séquence montre comment une demande envoyée en mode headless traverse une exécution non interactive jusqu'à une sortie structurée qu'un script peut lire, avec un basculement possible en tâche de fond si une étape dure trop longtemps.
Calibrez vous-même

Un développeur lance claude -p avec --output-format json dans un pipeline de déploiement, et le script du pipeline récupère le champ total_cost_usd du résultat pour l'ajouter au tableau de bord de coûts.

Écrivez en une phrase ce que cette situation établit, et en une phrase ce qu'elle n'établit pas.

Ce qu’il faut retenir
  • Le drapeau -p déclenche le mode headless, sans interface interactive, pour un usage scripté de Claude Code.
  • --output-format json rend un objet unique portant le résultat, l'identifiant de session et le coût total en dollars avec sa répartition par modèle.
  • --bare saute la découverte automatique des hooks, skills et fichiers de contexte au démarrage, un gain de vitesse recommandé pour les appels scriptés, mais il ne lit jamais les identifiants OAuth ni le trousseau, ANTHROPIC_API_KEY devient donc nécessaire.
  • run_in_background rend immédiatement un identifiant de tâche et laisse une commande longue continuer pendant que la conversation se poursuit.
  • Une commande qui atteint son délai d'expiration bascule automatiquement en tâche de fond, sauf si elle commence par sleep, contient git, ou est trop composée pour être analysée.
À faire maintenant

Lancez depuis votre terminal claude -p "un mot au hasard" --output-format json sur un dossier ne contenant aucune donnée sensible, et repérez dans la sortie les champs session_id et total_cost_usd.

Vérifier à la source

Chaque affirmation datable de cette leçon renvoie ici au texte public qui la porte. Une source qui ne s’ouvre pas ne prouve rien.