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.
D'une commande headless à une sortie exploitable par un script
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 que cela établit : Ce lancement établit que le script peut lire un coût total sans analyser du texte libre, puisque le format json le rend disponible comme un champ structuré.
Ce que cela n’établit pas : Il n'établit pas que ce coût correspond à l'ensemble des dépenses du pipeline de déploiement, puisque d'autres étapes du pipeline peuvent engager des coûts qui n'ont rien à voir avec cet appel à Claude Code.
Les trois calibrages faux les plus courants
- Trop large Le format json expose désormais tous les coûts de n'importe quel outil utilisé dans le pipeline de déploiement, pas seulement celui de cet appel à Claude Code.
- Trop étroit Ce lancement ne prouve rien du tout, puisqu'un seul appel a été observé dans un seul pipeline.
- À côté Ce lancement montre que le pipeline de déploiement termine désormais plus vite qu'avant l'ajout de cet appel à Claude Code.
- 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.
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.
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.
- Claude Code, mode headless, formats de sortie et drapeau --bare consultée le 2026-09-02
- Claude Code, référence des outils, run_in_background et bascule automatique en tâche de fond consultée le 2026-09-02