The Claude Bible
Accueil / Étendre Claude Code
Niveau: Avance · 17 lecons

Étendre Claude Code

Skills, MCP, sub-agents, hooks, plugins, agent teams. Là où Claude Code devient une plateforme.

Ouvrir le cours interactif212 lecons, quiz, exercices, 3 langues, gratuit.

Skills : apprendre un workflow à Claude

Un skill est un fichier markdown (SKILL.md) qui enseigne à Claude un workflow reproductible, déclenché par une commande slash. Au lieu de recoller un long prompt à chaque fois, vous l'invoquez : /my-skill.

Anatomie : un frontmatter (nom, description, déclencheurs) + des instructions + parfois des fichiers de référence et des scripts. La description est cruciale : c'est elle qui permet à Claude de choisir le bon skill au bon moment.

Pierre dispose d'une collection qui illustre la puissance du mécanisme :

Un skill est de la connaissance procédurale encapsulée : vous codez votre façon de faire une chose une seule fois, Claude la rejoue parfaitement à chaque appel.

Points cles
  • Skill = workflow reproductible dans un SKILL.md, invoqué par une commande slash
  • La description pilote le déclenchement automatique
  • Connaissance procédurale encapsulée, réutilisable
  • skill-builder : un skill pour construire des skills

MCP : connecter des outils externes

MCP (Model Context Protocol) est le standard ouvert qui relie Claude à des serveurs d'outils et de données externes : une base de données, une API, un CMS, un SaaS. Une fois qu'un serveur MCP est connecté, ses outils deviennent appelables par Claude comme des outils natifs.

Concrètement, vous connectez un serveur via /mcp ou la configuration, et les prompts du serveur apparaissent au format /mcp__[server]__[prompt]. C'est exactement la même technologie que les Connecteurs du côté Cowork.

Exemples issus du setup de Pierre :

Un piège à connaître, vécu par Pierre : un MCP peut être scopé au projet. Son MCP Strapi n'expose ses outils que si Claude Code démarre depuis le bon dossier de projet. Démarrer ailleurs signifie outils manquants. Règle : vérifier le scope quand un outil MCP attendu n'apparaît pas.

Points cles
  • MCP = standard pour connecter des outils/données externes à Claude
  • Les outils MCP sont appelés comme des outils natifs ; même technologie que les Connecteurs
  • Format /mcp__[server]__[prompt]
  • Piège : un MCP scopé au projet n'apparaît que depuis le bon dossier

Sous-agents : déléguer dans un contexte isolé

Un sous-agent est un agent Claude que l'agent principal lance pour une tâche donnée, avec son propre contexte isolé. Il effectue son travail et ne renvoie que sa conclusion à l'agent principal, sans tout le désordre intermédiaire.

Deux avantages majeurs :

Types courants : un agent Explore (recherche en lecture seule), un agent Plan (conception d'une stratégie), des agents spécialisés (revue de code, audit SEO, analyse concurrentielle). Vous les gérez via /agents.

Disponibles depuis juillet 2025, les sous-agents sont le bloc de base de tout ce qui suit : les workflows et les équipes d'agents ne sont que des façons structurées de les orchestrer.

Points cles
  • Sous-agent = tâche déléguée dans un contexte isolé, ne renvoie que sa conclusion
  • Garde le contexte principal propre et permet le parallélisme
  • Types : Explore (lecture), Plan, spécialisés (revue, audit)
  • Bloc de base des workflows et des équipes d'agents

Hooks : automatiser le cycle de vie

Les hooks sont des actions déclenchées automatiquement à des moments clés du cycle de vie de Claude Code : avant/après un appel d'outil, quand Claude a terminé, à chaque édition de fichier, au démarrage de session.

Point essentiel : c'est le harness qui exécute les hooks, pas le modèle. Tout comportement de la forme "chaque fois que X, faire automatiquement Y" ne peut pas vivre dans la mémoire ou les préférences : il doit être un hook dans settings.json.

Utilisations typiques :

Pierre utilise des hooks git (post-commit) pour rafraîchir automatiquement ses graphes Graphify à chaque commit, et des tâches planifiées pour la consolidation de la mémoire. C'est ce qui transforme une pratique manuelle en pipeline automatique.

Points cles
  • Hook = action automatique sur un événement du cycle de vie
  • Exécuté par le harness, pas par le modèle : 'chaque fois que X' = un hook, pas une préférence
  • Formater/linter, tests, blocage de secrets, webhook CI
  • Pierre : hooks post-commit pour rafraîchir Graphify

Plugins et équipes d'agents

Plugins : un plugin est un bundle versionné qui regroupe plusieurs skills, sous-agents, commandes slash, hooks, styles de sortie et définitions de serveurs MCP. C'est la façon canonique de partager des extensions Claude Code réutilisables, via une marketplace.

Pierre active plusieurs plugins dans son settings.json : superpowers (workflows avancés), frontend-design, code-review, security-guidance, et une marketplace personnelle searchfit-seo avec ses propres skills SEO. Un plugin, c'est installer d'un coup une boîte à outils entière et cohérente.

Équipes d'agents : disponibles depuis février 2026, elles permettent à plusieurs agents de se coordonner sur des sous-tâches parallèles. C'est le niveau au-dessus des sous-agents isolés : non seulement on délègue, mais les agents collaborent vers un objectif commun. Nous approfondissons l'orchestration dans le module 9.

La progression à retenir : skill (un workflow) -> plugin (une boîte à outils partagée) -> équipe d'agents (plusieurs agents qui collaborent). Chaque niveau compose le précédent.

Points cles
  • Plugin = bundle versionné (skills + agents + commandes + hooks + MCP), partageable
  • Pierre : superpowers, frontend-design, code-review, security-guidance, SEO personnel
  • Équipes d'agents (fév. 2026) = plusieurs agents collaborant sur des sous-tâches
  • Échelle : skill -> plugin -> équipe d'agents

Créez votre propre skill

Un skill dans Claude Code est un ensemble d'instructions réutilisables stocké dans un fichier Markdown appelé SKILL.md. Lorsque vous déclenchez le skill, Claude lit ce fichier et l'applique comme ensemble de règles pour la tâche en cours. Les skills se trouvent dans ~/.claude/skills/<skill-name>/SKILL.md (global, disponible dans tous les projets) ou dans .claude/skills/<skill-name>/SKILL.md à l'intérieur d'un dépôt spécifique (portée projet).

Chaque SKILL.md commence par un bloc frontmatter (un court en-tête YAML entre deux lignes ---). Les deux clés obligatoires sont name (un identifiant court) et description (une phrase qui indique à Claude quand le skill s'applique). C'est la description que Claude Code affiche dans la liste des skills et utilise pour décider s'il doit le suggérer automatiquement.

Un skill se déclenche de deux façons. Premièrement, de façon explicite : l'utilisateur tape /skill-name comme commande slash. Deuxièmement, automatiquement : si votre description correspond à ce que l'utilisateur demande, Claude Code peut l'invoquer sans qu'on lui demande. Le corps du fichier SKILL.md (tout ce qui suit le frontmatter) est du Markdown ordinaire et peut contenir des instructions étape par étape, des contraintes, des règles de format de sortie, ou même des modèles de code.

La structure de dossier recommandée pour un skill bien organisé est :

Points cles
  • SKILL.md se trouve dans ~/.claude/skills/<name>/ (global) ou .claude/skills/<name>/ (projet)
  • Le frontmatter requiert name et description entre les lignes ---
  • Déclenchement : commande slash explicite /name ou correspondance automatique sur la description
  • Le corps du skill est du Markdown ordinaire : étapes, règles, contraintes, modèles

Découvrir et installer des skills

Claude Code est livré avec un outil Skill intégré, un mécanisme qui permet à l'agent de charger un prompt spécialisé, un workflow ou un mini-agent à la demande. Un skill est un paquet nommé stocké dans ~/.claude/skills/<name>/SKILL.md. Quand vous (ou Claude lui-même) invoquez un skill, l'outil Skill lit ce fichier et adopte ses instructions pour le reste de la tâche.

Les skills se découvrent par plusieurs canaux. Le plus simple est de taper une commande slash comme /graphify ou /code-review dans le prompt de Claude Code. Claude vérifie la liste des skills disponibles (affichée dans son rappel système) et appelle l'outil Skill automatiquement. Vous pouvez aussi demander en langage naturel : "find a skill for X" déclenche le skill find-skills, qui parcourt le registre et suggère ce qu'il faut installer.

Le principal point de distribution est le dépôt communautaire affaan-m/ECC sur GitHub, qui regroupe des centaines de skills prêts à l'emploi. Il suffit de cloner ou copier les skills voulus dans ~/.claude/skills/ pour qu'ils soient immédiatement disponibles. Des auteurs individuels publient aussi des fichiers SKILL.md sous forme de gists ou de sous-dossiers de dépôt que vous pouvez déposer de la même façon.

Points essentiels à comprendre sur le système de skills :

Points cles
  • Les skills résident dans ~/.claude/skills/ sous forme de fichiers SKILL.md
  • Invocation par commande slash ou déclencheur en langage naturel
  • ECC (affaan-m/ECC) est la principale bibliothèque communautaire de skills
  • find-skills découvre et suggère de nouveaux skills sur demande

L'écosystème MCP

MCP (Model Context Protocol) est un standard ouvert qui permet à Claude de se connecter à des outils externes, des sources de données et des invites réutilisables via une interface unique et uniforme. Plutôt que de coder en dur chaque intégration, vous branchez un serveur MCP (un petit programme qui parle le protocole) et Claude acquiert immédiatement de nouvelles capacités.

MCP définit exactement trois primitives (les briques de base que chaque serveur expose) :

Dans Claude Code, vous configurez les serveurs MCP dans .claude/settings.json sous la clé mcpServers. Une fois enregistrés, tous les outils exposés par le serveur apparaissent automatiquement dans l'agent, et vous pouvez voir la liste complète avec /mcp dans l'invite de Claude Code.

Points cles
  • MCP est le protocole ouvert pour connecter Claude à des capacités externes
  • Trois primitives : outils (appelables), ressources (lisibles), invites (modèles réutilisables)
  • Les serveurs sont enregistrés dans .claude/settings.json sous mcpServers
  • Lancez /mcp dans Claude Code pour lister tous les serveurs actifs et leurs outils

Connecter un serveur MCP

MCP (Model Context Protocol) est un standard ouvert qui permet à Claude Code de communiquer avec des outils externes et des sources de données via un petit processus serveur. Chaque serveur MCP expose un ensemble d'outils (des actions que Claude peut appeler) et de ressources (des données que Claude peut lire). Il suffit d'en installer un, d'indiquer son emplacement à Claude Code, et ces fonctionnalités apparaissent automatiquement dans chaque conversation.

Claude Code supporte deux portées pour les serveurs MCP. La portée utilisateur rend un serveur disponible dans tous les projets de votre machine. La portée projet limite le serveur à un dépôt spécifique, ce qui permet d'isoler les identifiants et les ensembles d'outils. Les serveurs à portée projet sont déclarés dans .claude/settings.json au sein du dépôt ; ceux à portée utilisateur se trouvent dans votre fichier global ~/.claude/settings.json.

De nombreux serveurs MCP nécessitent une authentification avant que Claude Code puisse appeler leurs outils. Les deux méthodes courantes sont le jeton statique (vous collez une clé secrète une fois et elle est enregistrée dans la configuration) et OAuth (Open Authorization, un flux basé sur le navigateur où vous vous connectez avec votre vrai compte et le serveur délivre un jeton d'accès temporaire). OAuth est préféré lorsque le service dispose déjà de vos identifiants, car aucun secret durable n'est stocké dans un fichier.

Points cles
  • Les serveurs MCP ajoutent des outils et des ressources à Claude Code sans modifier le modèle
  • La portée projet permet d'isoler les identifiants et les outils à un seul dépôt
  • OAuth vous permet de vous authentifier avec votre vrai compte plutôt que de coller une clé secrète
  • Utilisez 'claude mcp list' pour vérifier qu'un serveur est connecté et opérationnel

Construire son propre serveur MCP

Le Model Context Protocol (MCP) est un standard ouvert qui permet à Claude Code d'appeler des outils externes que vous définissez vous-même. Au lieu d'être limité aux commandes intégrées, vous pouvez exposer n'importe quelle fonction (une requête en base de données, un appel API, une transformation de fichier) comme un outil que Claude découvre et invoque automatiquement.

Les serveurs MCP communiquent avec Claude Code via l'un des deux transports disponibles (le canal par lequel transitent les messages). stdio (entrée/sortie standard) est le plus simple : Claude Code lance votre serveur comme un processus enfant et échange des messages JSON via stdin et stdout. HTTP avec Server-Sent Events (SSE) fait tourner votre serveur comme un service web persistant, utile quand le serveur doit être partagé entre plusieurs machines ou rester actif entre les sessions. Pour les outils locaux, stdio est presque toujours le bon choix.

Chaque outil que vous exposez comporte trois parties obligatoires : un nom unique, une description lisible par un humain (Claude la lit pour décider quand appeler l'outil), et un schéma d'entrée (un objet JSON Schema qui décrit les paramètres acceptés par l'outil). Claude Code valide chaque appel par rapport au schéma avant de l'exécuter, ce qui permet de détecter les mauvais arguments très tôt.

Points cles
  • MCP (Model Context Protocol) : standard ouvert pour les outils Claude personnalisés
  • Transport stdio : Claude lance votre serveur comme un processus enfant
  • Schéma d'entrée : JSON Schema qui valide les arguments de l'outil
  • Description de l'outil : le texte que Claude lit pour décider quand l'appeler

Patterns de sous-agents

Un sous-agent est un processus Claude Code distinct que Claude lance pour traiter une tâche spécifique en isolation. "Isolation" signifie qu'il dispose de sa propre fenêtre de contexte vierge (le tampon mémoire contenant la conversation en cours), ce qui l'empêche de voir l'historique, les identifiants ou le raisonnement intermédiaire de la session parente. C'est intentionnel : un contexte frais reste concentré et évite de polluer les résultats avec des informations sans rapport.

Quand faut-il déléguer à un sous-agent ? La règle de base est la suivante : déléguer quand une tâche est indépendante (elle n'a pas besoin de connaissances que le parent possède déjà), coûteuse (elle consommerait la majeure partie du budget de contexte du parent en lisant de nombreux fichiers), ou parallélisable (plusieurs tâches similaires peuvent s'exécuter en même temps). On peut citer comme exemples l'exécution d'un audit de sécurité complet sur un seul module, la génération d'une traduction pour chaque langue prise en charge, ou l'exécution d'une suite de tests sur une branche.

Claude Code reconnaît trois types d'agents nommés que vous rencontrerez dans les skills et la documentation :

Étant donné que chaque sous-agent démarre à froid, l'orchestrateur doit passer tout le contexte nécessaire dans l'invite elle-même : chemins de fichiers, extraits de code pertinents, contraintes et format de sortie attendu. Traitez chaque invite de délégation comme un ticket autonome remis à un prestataire qui n'a jamais vu votre projet.

Points cles
  • Les sous-agents s'exécutent dans des fenêtres de contexte isolées, sans accès à la session parente
  • Déléguer quand une tâche est indépendante, coûteuse ou parallélisable
  • L'orchestrateur planifie et assemble ; les travailleurs exécutent ; l'évaluateur valide
  • Chaque invite de délégation doit être autonome et contenir tout le contexte nécessaire

Événements de hook : le cycle de vie

Claude Code expose un système de hooks qui vous permet d'exécuter vos propres scripts à des moments précis d'une session. Chaque moment est appelé un événement de hook. Vous enregistrez un hook dans settings.json en associant le nom d'un événement à une commande shell. Claude Code exécute cette commande automatiquement lorsque l'événement se déclenche.

Les principaux événements de hook sont :

Les hooks reçoivent via stdin un JSON structuré décrivant l'événement : quel outil a été appelé, quels arguments ont été passés, quel est le résultat, etc. Votre script lit ce JSON, effectue son travail et se termine. Un code de sortie non nul sur un hook PreToolUse annule complètement l'appel à l'outil, vous offrant ainsi un contrôle léger mais efficace.

Points cles
  • PreToolUse s'exécute avant chaque appel d'outil et peut l'annuler
  • PostToolUse s'exécute après le retour du résultat
  • Stop se déclenche une fois quand Claude termine sa réponse finale
  • SessionStart se déclenche une fois au début de chaque session

Écrire un script de hook

Un script de hook est un petit programme que Claude Code exécute automatiquement à un moment précis, par exemple avant qu'un outil s'exécute ou après qu'un fichier est sauvegardé. Les hooks vous permettent d'imposer des règles, de journaliser des actions ou de transmettre des informations supplémentaires à Claude sans modifier vos prompts.

Chaque hook reçoit un payload JSON (un objet de données structuré) sur l'entrée standard (stdin) décrivant ce que Claude s'apprête à faire. Le payload contient un champ tool_name que vous pouvez comparer pour décider si votre script doit agir. Les noms d'outils courants sont Bash, Edit, Write et Read.

Votre script contrôle la suite via son code de sortie (un nombre que votre script renvoie au système d'exploitation à la fin de son exécution) et sa sortie standard (stdout) :

Si vous écrivez un objet JSON sur stdout avec un champ continue défini à true et une chaîne stopReason, Claude lit ce texte et peut ajuster son action suivante. C'est ainsi que vous transmettez du contexte au modèle en cours de tâche, transformant un garde passif en conseiller actif.

Points cles
  • Les scripts de hook s'exécutent à des moments définis et reçoivent un payload JSON sur stdin.
  • Comparez tool_name pour déterminer si votre hook s'applique à l'appel en cours.
  • Exit 0 autorise, exit 2 bloque et affiche votre message à l'utilisateur.
  • Écrivez du JSON avec continue:true et stopReason pour renvoyer des conseils à Claude.

Plugins : tout regrouper en un seul endroit

Un skill Claude Code est un répertoire qui se distribue comme une unité installable. À l'intérieur, vous pouvez combiner tous les points d'extension que vous avez appris : slash commands, hooks, déclarations de serveur MCP et même des définitions de sous-agents. Quand quelqu'un installe votre skill, toutes ces pièces s'activent ensemble, sans câblage manuel.

Le point d'entrée est un fichier SKILL.md. Claude le lit au moment de l'invocation pour comprendre la finalité du skill, ses commandes disponibles et les instructions de configuration. À côté de lui, le répertoire du skill contient généralement les scripts de support, les extraits de configuration et les manifestes MCP qui servent ces commandes.

Un skill bien structuré couvre quatre couches :

Les skills résident dans ~/.claude/skills/<skill-name>/ pour un usage global, ou dans .claude/skills/<skill-name>/ à l'intérieur d'un dépôt pour un usage limité au projet. Invoquer un skill est aussi simple que de taper /skill-name dans l'invite Claude Code.

Points cles
  • Un skill regroupe commandes, hooks, serveurs MCP et agents dans un seul répertoire
  • SKILL.md est le point d'entrée que Claude lit quand le skill est invoqué
  • Les skills globaux vont dans ~/.claude/skills/, les skills de projet dans .claude/skills/
  • Installer un skill active tous ses points d'extension sans configuration supplémentaire

settings.json en profondeur

settings.json est le fichier de configuration qui contrôle le comportement de Claude Code dans un projet ou de façon globale. Il couvre quatre domaines principaux : les permissions (les outils que Claude peut utiliser sans demander confirmation), les variables d'environnement (valeurs injectées dans chaque session), les hooks (commandes shell déclenchées automatiquement à certains moments) et les règles de localisation des fichiers ainsi que de priorité.

Il existe deux niveaux de portée. Le fichier utilisateur situé à ~/.claude/settings.json s'applique à tous les projets ouverts. Le fichier projet situé à .claude/settings.json à la racine d'un dépôt s'applique uniquement à ce dépôt. Lorsque les deux existent, les paramètres du projet prennent le dessus sur les paramètres utilisateur pour chaque clé commune, et le reste est hérité.

Le bloc permissions utilise une liste allow et une liste deny. Chaque entrée est un identifiant d'outil tel que Bash, Edit ou un nom d'outil MCP. Les entrées dans allow autorisent Claude à appeler cet outil sans confirmation ; les entrées dans deny le bloquent complètement. Le bloc env est un simple objet clé-valeur : chaque clé devient une variable d'environnement disponible pour les hooks et tout sous-processus lancé par Claude.

Le bloc hooks associe des événements du cycle de vie à des commandes shell :

Chaque entrée de hook est un objet comportant un matcher (nom d'outil ou "*" pour tous) et une chaîne command exécutée dans le shell. Les hooks s'exécutent en tant qu'utilisateur courant et disposent donc d'un accès complet au système : gardez-les courts et vérifiés.

Points cles
  • Le fichier settings.json de projet remplace le settings.json utilisateur pour les clés communes.
  • Les listes allow/deny dans les permissions contrôlent quels outils Claude peut utiliser sans confirmation.
  • Le bloc env injecte des variables dans chaque session Claude Code et dans les sous-processus.
  • Les hooks (PreToolUse, PostToolUse, Stop) exécutent des commandes shell aux événements du cycle de vie.

Styles de sortie

Claude Code adopte par défaut un style conversationnel et détaillé : il explique son raisonnement, liste les étapes et confirme les actions. Ce comportement par défaut est utile quand vous apprenez, mais il génère du bruit lorsque vous êtes dans une boucle d'itération rapide ou que vous redirigez la sortie vers un autre outil.

Vous contrôlez le style de sortie via deux leviers principaux : les options de la ligne de commande et les instructions directement dans le prompt. Les options sont fiables et lisibles par les machines ; les instructions de prompt sont flexibles et portables.

Les options les plus importantes sont :

Dans le prompt, vous pouvez ajouter des directives de style comme "réponds uniquement avec le contenu du fichier, sans commentaire" ou "retourne une seule commande shell, rien d'autre." Claude Code les respecte de façon cohérente avec claude-opus-4-8, claude-sonnet-4-6 et claude-haiku-4-5.

Points cles
  • --output-format json pour une sortie lisible par les machines
  • --verbose pour exposer les appels d'outils et le raisonnement
  • Les directives de prompt remplacent le style bavard par défaut
  • Adapter le style de sortie au destinataire (humain ou script)

Tâches de fond et outils web

Claude Code peut lancer des processus longs en arrière-plan afin que vous n'ayez pas à attendre leur fin avant de donner la prochaine instruction. L'option run_in_background demande à l'outil Bash de démarrer une commande sans bloquer : Claude la lance, continue sa tâche et vous notifie quand elle se termine. C'est utile pour les compilations, les suites de tests ou les serveurs de développement qui gèleraient sinon la conversation.

Deux outils web étendent Claude Code au-delà de vos fichiers locaux. WebSearch interroge le web et renvoie une liste classée de résultats avec titres, URLs et extraits. WebFetch récupère le contenu complet d'une URL précise, supprime le HTML et transmet le texte lisible à Claude. Ensemble, ils permettent à Claude de répondre à des questions nécessitant des informations récentes ou une documentation externe, sans que vous n'ayez à copier-coller quoi que ce soit.

Savoir quel outil utiliser est important. Utilisez WebSearch quand vous devez découvrir des sources (vous ne connaissez pas encore la bonne URL). Utilisez WebFetch quand vous avez déjà une URL et souhaitez que Claude lise la page en entier (par exemple une référence d'API ou un journal des modifications). Utilisez run_in_background quand une commande shell prendrait plus de quelques secondes et que vous voulez continuer à travailler en parallèle.

Points cles
  • run_in_background permet aux commandes shell longues de s'exécuter sans bloquer le chat
  • WebSearch trouve des sources quand vous ne connaissez pas encore l'URL
  • WebFetch lit une page complète quand vous avez déjà l'URL
  • Combinez-les : cherchez d'abord, puis récupérez le résultat le plus pertinent
Travailler avec moi

Maitrisez Claude, Claude Code et les LLM, de votre premier prompt a l orchestration multi-agents.

Ce cours vous plait ? Je l ai concu de bout en bout. Besoin d une web app, d une app mobile, d une automatisation IA ou de SEO/GEO ? Parlons-en.

Me contacter sur LinkedInVoir un site que j ai realise