Guide complet10 min de lecture

Mode headless et CI/CD

SFEIR Institute

En Bref (TL;DR)

Le mode headless de Claude Code permet d'exécuter des tâches d'IA directement dans vos pipelines CI/CD sans interaction humaine. Avec le flag `-p`, vous automatisez revues de code, génération de documentation et tests en une seule commande. Ce guide détaille comment configurer et exploiter Claude Code en mode non-interactif dans GitHub Actions et vos workflows d'intégration continue.

Le mode headless de Claude Code permet d'exécuter des tâches d'IA directement dans vos pipelines CI/CD sans interaction humaine. Avec le flag -p, vous automatisez revues de code, génération de documentation et tests en une seule commande. Ce guide détaille comment configurer et exploiter Claude Code en mode non-interactif dans GitHub Actions et vos workflows d'intégration continue.

Le mode headless de Claude Code est une fonctionnalité qui transforme l'agent IA en outil de ligne de commande non-interactif, capable de s'intégrer dans n'importe quel pipeline CI/CD. cette approche s'impose comme un standard pour les équipes DevOps qui cherchent à automatiser leurs flux de développement avec l'IA.

le flag --print (-p) a été conçu pour permettre l'exécution de Claude Code dans des environnements sans terminal interactif. Cette conception ouvre la porte à des dizaines de cas d'usage en intégration continue.

Pour comprendre les fondamentaux avant de plonger dans l'automatisation, consultez le guide d'introduction à Claude Code qui couvre les bases de l'outil.

Comment fonctionne le flag -p pour exécuter Claude Code en une commande ?

Le flag -p (alias --print) est le point d'entrée du mode headless. Il indique à Claude Code de traiter un prompt unique, produire une réponse, puis quitter le processus. Aucune interaction utilisateur n'est requise.

Exécutez votre première commande headless :

claude -p "Explique cette fonction" --file src/utils.ts

Le processus se décompose en trois étapes : lecture du prompt, exécution de l'agent, écriture du résultat sur stdout. Le code de sortie est 0 en cas de succès, 1 en cas d'erreur.

Vous pouvez aussi passer du contenu via stdin avec un pipe :

git diff HEAD~1 | claude -p "Fais une revue de ce diff. Identifie les bugs potentiels."
ParamètreDescriptionExemple
-p "prompt"Prompt unique en mode non-interactifclaude -p "Résume ce fichier"
--output-formatFormat de sortie (text, json, stream-json)claude -p "..." --output-format json
--max-turnsLimite le nombre de tours agentclaude -p "..." --max-turns 5
--allowedToolsRestreint les outils accessiblesclaude -p "..." --allowedTools "Read,Grep"
--modelChoisit le modèle Claudeclaude -p "..." --model claude-sonnet-4-6

En pratique, 85 % des intégrations CI/CD utilisent le flag -p comme unique point d'entrée. Consultez la référence complète des commandes headless pour voir tous les paramètres disponibles.

À retenir : le flag -p transforme Claude Code en commande Unix classique, compatible avec les pipes, les redirections et les scripts shell.

Quels formats de sortie sont disponibles pour le parsing automatisé ?

Claude Code en mode headless supporte trois formats de sortie via le paramètre --output-format. Chaque format répond à un besoin différent d'intégration.

Format text (par défaut)

Le format texte renvoie la réponse brute sur stdout. C'est le format le plus simple pour les scripts shell :

RESULT=$(claude -p "Génère un résumé du fichier README.md" --output-format text)
echo "$RESULT" >> rapport.md

Format json

Le format JSON structure la réponse dans un objet exploitable par jq ou tout parser JSON. Le résultat contient les métadonnées d'exécution : coût en tokens, durée, outils utilisés.

claude -p "Analyse ce code" --output-format json | jq '.result'

La réponse JSON inclut les champs result, cost_usd, duration_ms, num_turns et session_id. En pratique, le champ cost_usd permet de suivre vos dépenses API avec une précision au centième de dollar.

Format stream-json

Le format stream-json émet des événements JSON ligne par ligne (NDJSON). Ce format est conçu pour le monitoring en temps réel des exécutions longues.

claude -p "Refactorise ce module" --output-format stream-json | while read -r line; do
  echo "$line" | jq -r '.type'
done
FormatCas d'usageTaille moyenneParsing
textScripts simples, logs~2 KBgrep, awk
jsonIntégrations structurées~5 KBjq, Python
stream-jsonMonitoring temps réelVariableNDJSON reader

Pour des exemples concrets de parsing dans différents langages, la page d'exemples CI/CD fournit des scripts prêts à l'emploi.

À retenir : choisissez json pour les intégrations programmatiques et stream-json pour le suivi en temps réel d'exécutions de plus de 30 secondes.

Comment intégrer Claude Code dans GitHub Actions ?

L'intégration de Claude Code dans GitHub Actions repose sur un workflow YAML standard. Vous configurez l'authentification via une clé API stockée en secret, puis vous appelez Claude Code avec le flag -p.

Créez un fichier .github/workflows/claude-review.yml :

name: Claude Code Review
on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Install Claude Code
        run: npm install -g @anthropic-ai/claude-code@latest

      - name: Run code review
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          git diff origin/main...HEAD | claude -p \
            "Fais une revue de code de ce diff. Liste les problèmes par sévérité." \
            --output-format json > review.json

      - name: Post review comment
        run: |
          BODY=$(jq -r '.result' review.json)
          gh pr comment ${{ github.event.pull_request.number }} --body "$BODY"
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

les runners ubuntu-latest disposent de Node.js 22 préinstallé, ce qui simplifie l'installation de Claude Code. Le temps d'installation du package est d'environ 15 secondes.

Concrètement, une revue de code automatisée sur un diff de 500 lignes prend entre 20 et 45 secondes et consomme environ 0,03 $ en tokens API. Ce coût marginal rend l'automatisation viable même sur des projets avec 50+ pull requests par semaine.

Pour éviter les pièges courants lors de la mise en place, consultez la liste des erreurs fréquentes en mode headless avant votre première configuration.

Si vous souhaitez un accompagnement structuré, la formation Claude Code de SFEIR Institute couvre en 1 journée l'intégration CI/CD avec des labs pratiques sur GitHub Actions. Vous y configurez un pipeline complet de revue automatisée.

À retenir : stockez votre ANTHROPIC_API_KEY en secret GitHub et limitez les permissions du workflow au strict nécessaire avec --allowedTools.

Comment créer des sessions multi-turn programmatiques ?

Les sessions multi-turn permettent d'enchaîner plusieurs appels Claude Code en conservant le contexte de conversation. Cette fonctionnalité est essentielle pour les tâches complexes qui nécessitent plusieurs étapes.

Utilisez le paramètre --session-id pour reprendre une session existante :

# Premier appel : analyse
SESSION=$(claude -p "Analyse l'architecture du projet" \
  --output-format json | jq -r '.session_id')

# Deuxième appel : action basée sur l'analyse
claude -p "Basé sur ton analyse, génère les tests manquants" \
  --session-id "$SESSION" \
  --output-format text > tests_generes.ts

En pratique, une session multi-turn de 3 tours consomme en moyenne 40 % de tokens en moins qu'un triple appel sans contexte, car le modèle ne re-analyse pas le code à chaque requête.

Le paramètre --max-turns contrôle le nombre maximal d'itérations agent dans un seul appel. Pour les tâches CI/CD, limitez ce nombre à 10 tours pour éviter les exécutions incontrôlées.

ScénarioTurns recommandésDurée estiméeCoût moyen
Revue de code simple1-315-30 s0,02 $
Génération de tests3-530-60 s0,05 $
Refactoring guidé5-101-3 min0,12 $
Migration complète10-203-10 min0,25 $

Pour approfondir le concept d'agent autonome qui sous-tend les sessions multi-turn, explorez le guide sur le coding agentique qui explique comment Claude Code prend des décisions séquentielles.

Vous pouvez aussi combiner les sessions multi-turn avec les commandes personnalisées et skills pour créer des workflows réutilisables à travers vos projets.

À retenir : les sessions multi-turn réduisent le coût et améliorent la qualité des réponses sur les tâches en plusieurs étapes grâce à la conservation du contexte.

Quels sont les cas d'usage CI/CD avancés avec Claude Code ?

Au-delà de la revue de code, le mode headless de Claude Code en 2026 couvre des scénarios d'automatisation avancés que vous pouvez déployer dans vos pipelines existants.

Génération automatique de changelogs

Exécutez cette commande dans votre pipeline de release :

git log --oneline v1.2.0..HEAD | claude -p \
  "Génère un changelog structuré en Markdown à partir de ces commits. \
  Catégorise par : Features, Fixes, Breaking Changes." \
  --output-format text > CHANGELOG.md

Validation de documentation

Vérifiez que votre documentation technique reste synchronisée avec le code :

claude -p "Compare le README.md avec le code source dans src/. \
  Liste les incohérences et les instructions obsolètes." \
  --allowedTools "Read,Grep,Glob" \
  --max-turns 5

Détection de vulnérabilités

Claude Code peut analyser vos dépendances et votre code pour détecter des failles de sécurité. En pratique, cette analyse identifie en moyenne 3 à 5 problèmes de sécurité par projet sur un codebase de 10 000 lignes.

Migration de syntaxe automatisée

Concrètement, vous pouvez automatiser la migration de patterns obsolètes sur des centaines de fichiers :

claude -p "Migre tous les appels de l'API v1 vers l'API v2 \
  selon le guide de migration dans MIGRATION.md" \
  --allowedTools "Read,Write,Edit,Grep,Glob" \
  --max-turns 20

le mode headless traite en moyenne 1 200 tokens par seconde en mode streaming avec le modèle Claude Sonnet 4.6. Cette vitesse permet de traiter un fichier de 500 lignes en moins de 10 secondes.

Pour découvrir d'autres patterns d'automatisation, parcourez les astuces avancées pour le mode headless et les exemples de workflows complets.

À retenir : le mode headless excelle dans les tâches répétitives et mesurables - revue, migration, documentation - où le retour sur investissement se calcule en heures de développeur économisées.

Comment sécuriser et contrôler les exécutions headless ?

La sécurité des exécutions automatisées est un enjeu central. Vous devez restreindre les permissions de Claude Code au strict nécessaire pour chaque tâche CI/CD.

Configurez les outils autorisés avec --allowedTools :

# Lecture seule : revue de code
claude -p "Revue ce code" --allowedTools "Read,Grep,Glob"

# Écriture contrôlée : génération de tests
claude -p "Génère les tests" --allowedTools "Read,Write,Grep,Glob"

Le paramètre --max-turns agit comme un garde-fou temporel. Fixez-le à une valeur cohérente avec la complexité de la tâche. Au-delà de 20 tours, posez-vous la question de découper la tâche.

Niveau de risqueOutils autorisésMax turnsCas d'usage
MinimalRead,Grep,Glob3Revue, analyse
ModéréRead,Write,Grep,Glob10Génération de code
ÉlevéTous20Refactoring large

Voici comment configurer un fichier .claude/settings.json pour restreindre les permissions par défaut dans votre dépôt :

{
  "permissions": {
    "allow": ["Read", "Grep", "Glob"],
    "deny": ["Bash"]
  }
}

En pratique, 92 % des incidents en CI/CD avec des agents IA proviennent d'une absence de limitation des outils. Définissez toujours un périmètre explicite.

Pour aller plus loin sur la configuration du protocole de communication, le guide MCP (Model Context Protocol) détaille comment connecter Claude Code à des sources de données externes de manière sécurisée.

À retenir : le principe du moindre privilège s'applique au mode headless - restreignez les outils et le nombre de tours à ce que la tâche exige réellement.

Comment débuter pas à pas avec le mode headless ?

Pour vos premiers pas en mode headless, suivez cette progression en quatre étapes. Chaque étape consolide la précédente avant d'ajouter de la complexité.

  1. Installez Claude Code v2.1+ via npm : npm install -g @anthropic-ai/claude-code
  2. Testez localement avec une commande simple : claude -p "Dis bonjour"
  3. Intégrez dans un script shell avec parsing JSON
  4. Déployez dans GitHub Actions avec gestion des secrets

Le tutoriel pas à pas du mode headless vous accompagne sur chacune de ces étapes avec des captures d'écran et des exemples reproductibles. Commencez par ce tutoriel si vous n'avez jamais utilisé le mode non-interactif.

Vous pouvez aussi garder sous la main l'aide-mémoire des commandes headless qui regroupe les commandes les plus utilisées en CI/CD sur une seule page.

Si vous débutez avec Claude Code, commencez par le guide installation et premier lancement puis enchaînez avec vos premières conversations avant d'aborder le mode headless.

La formation Développeur Augmenté par l'IA de SFEIR Institute propose 2 jours de labs pratiques couvrant le mode headless, les pipelines CI/CD et les sessions multi-turn. Pour les profils déjà à l'aise, la version Développeur Augmenté par l'IA – Avancé approfondit en 1 jour les cas d'usage avancés comme les migrations automatisées et l'orchestration multi-agents.

À retenir : progressez du test local vers l'intégration CI/CD en quatre étapes - chaque étape ne prend pas plus de 30 minutes à mettre en place.

Quelles sont les bonnes pratiques pour monitorer les exécutions en production ?

Le monitoring des exécutions headless repose sur trois piliers : la collecte des métriques, l'alerting sur les anomalies et le suivi des coûts.

Exploitez le format json pour collecter automatiquement les métriques d'exécution :

claude -p "Revue ce PR" --output-format json | jq '{
  cost: .cost_usd,
  duration: .duration_ms,
  turns: .num_turns,
  timestamp: now
}' >> metrics.jsonl

En pratique, les équipes qui monitorent leurs exécutions headless réduisent leurs coûts API de 25 % en identifiant les prompts inefficaces. Le coût moyen par exécution CI/CD se situe entre 0,02 $ et 0,15 $ selon la complexité de la tâche.

Concrètement, mettez en place une alerte quand une exécution dépasse 120 secondes ou 0,20 $ - ces seuils signalent généralement un prompt mal formulé ou une tâche trop large.

Pour diagnostiquer les exécutions qui échouent, la FAQ du mode headless répond aux questions les plus fréquentes sur les timeouts, les erreurs d'authentification et les limites de rate.

À retenir : le format JSON de sortie fournit toutes les métriques nécessaires au monitoring - collectez-les systématiquement pour optimiser vos coûts et détecter les dérives.


Formation recommandée

Formation Claude Code

Maîtrisez Claude Code avec nos formateurs experts. Formation pratique, hands-on, directement applicable à vos projets.

Voir le programme