Les hooks existants de Claude Code s’exécutent également sur des événements, en tant que commande shell, requête HTTP ou invite que vous configurez dans un fichier de paramètres. Les gestionnaires d’un mod sont des fonctions qui s’exécutent à l’intérieur de Claude Code à la place. Claude Code appelle les deux types de hooks : sur ces pages, « hook » signifie le gestionnaire d’un mod, et le type de fichier de paramètres est un « settings hook ».
Ce qu’un mod peut faire
Les settings hooks, les skills, les lignes d’état et les serveurs MCP fonctionnent en dehors de Claude Code : chacun exécute un script, ou donne à Claude du texte ou des outils. Un mod s’exécute à l’intérieur de Claude Code, il peut donc faire des choses qu’ils ne peuvent pas :- Dessiner une interface que vous pouvez utiliser : un volet à côté de la transcription ou une bande au-dessus de l’invite, avec des onglets, des boutons et des champs de texte. Voir Dessiner dans l’interface.
- Redessiner la propre interface de Claude Code : remplacer ou remodeler les parties que Claude Code dessine lui-même, comme la ligne d’un appel d’outil, le spinner, ou la boîte de dialogue dans laquelle Claude pose des questions. Voir Modifier ce que Claude Code dessine déjà.
- Intervenir dans un appel d’outil ou une requête : par exemple, maintenir un appel d’outil pendant que vous posez une question à l’utilisateur, y répondre sans exécuter l’outil, ou envoyer une requête à un modèle différent. Voir Garder ou modifier un appel d’outil et Suivre un tour.
- Exécuter votre propre code sur une commande : une
/commandqui exécute votre fonction immédiatement, sans tour Claude, même pendant que Claude travaille. Voir Ajouter une commande ou un outil. - Partager des données entre les hooks : les hooks d’un mod partagent les variables de son fichier, donc ce qu’un hook enregistre, un autre peut l’afficher. Par exemple, un hook peut compter les appels d’outils tandis qu’un autre affiche le compte à côté du spinner, ou l’un peut lire l’utilisation des tokens de chaque requête tandis qu’un autre la représente graphiquement dans un volet. Voir Réagir aux événements.
claude -p, et les sessions cloud. Si un settings hook, une skill, ou un serveur MCP fait déjà ce dont vous avez besoin, comparez-les avant d’écrire un mod. Pour gérer les mods d’une organisation, voir Gérer les mods de votre organisation.
Obtenir un mod
Vous pouvez commencer avec un mod de trois façons :- Utiliser un que vous avez déjà : certaines des propres fonctionnalités de Claude Code sont des mods, comme
/diff. Voir Mods intégrés à Claude Code. - En créer un : décrivez ce que vous voulez dans une session Claude Code, et Claude écrit le mod. Voir Demander un mod à Claude. Pour apprendre comment fonctionne le code d’un mod, écrivez-en un vous-même.
- En installer un : voir Installer ou mettre à jour un mod
Installer ou mettre à jour un mod
Un mod s’installe en tant que plugin, à partir d’une marketplace. Donnez le nom du plugin, un@, et le nom de la marketplace. Ces exemples installent un plugin nommé token-chart à partir d’une marketplace nommée your-org :
- Dans une session Claude Code, exécutez
/plugin install token-chart@your-org. - Dans votre shell, exécutez
claude plugin install token-chart@your-org.
/reload-plugins dans cette session pour le charger. Sinon, il se charge la prochaine fois que vous démarrez Claude Code.
Décider si vous faites confiance à un mod
Un mod est du code qui s’exécute avec vos permissions, à l’intérieur de Claude Code. Installez les mods uniquement à partir d’auteurs et de marketplaces en qui vous avez confiance.Ce qu’un mod peut atteindre
Un mod s’exécute avec vos permissions, donc avant d’en installer un, sachez ce à quoi il a accès. Une fois qu’il se charge, un mod peut :- Agir sur votre machine en tant que vous : lire et écrire des fichiers n’importe où où votre compte utilisateur peut, démarrer des programmes et faire des requêtes réseau
- Lire vos secrets : les variables d’environnement et les fichiers de paramètres, y compris une clé API que vous gardez dans l’un ou l’autre
- Voir votre session : chaque invite que vous envoyez et chaque appel d’outil que Claude fait
- Modifier votre session : réécrire une invite ou un appel d’outil, soumettre une invite comme si vous l’aviez tapée, ou envoyer un message à une autre de vos sessions
- Agir sans vous demander : approuver un appel d’outil avant que vous ne soyez invité
- Dépenser votre utilisation : appeler un modèle sur votre plan ou clé API
ask demanderait, ou qu’un de vos propres hooks PreToolUse a bloqué. Étendre les permissions avec les hooks énumère ce qu’un tel mod peut approuver, y compris quand il peut approuver un appel qu’une règle deny refuse.
Un mod peut remodeler une grande partie de l’interface de Claude Code, mais pas l’invite de permission. Il ne peut pas modifier ce qu’une invite vous montre.
Énumérer ce qu’un mod fait avant de l’installer
Avant d’installer un mod, vous pouvez énumérer les événements sur lesquels il se branche et ce qu’il demande à Claude Code de faire, comme lire un fichier ou faire une requête réseau, sans l’exécuter. Obtenez d’abord les fichiers du plugin, par exemple en clonant son référentiel. Ensuite, dans votre shell, exécutezclaude plugin validate sur le répertoire du plugin :
hooks: et calls: dans la sortie énumèrent les événements que le mod gère et ce qu’il demande à Claude Code de faire. Examiner ce qu’un mod peut faire montre la sortie et les appels à rechercher.
Activer ou désactiver les mods
Les mods nécessitent Claude Code v2.1.287 ou version ultérieure, et ils sont activés par défaut. Dans votre shell, exécutezclaude --version pour vérifier, et mettez à jour Claude Code si le vôtre est plus ancien.
Pour désactiver les mods, choisissez combien en arrêter et pour combien de temps. Pour les réactiver, annulez le même changement :
- Un mod : désactivez ou désinstallez son plugin à partir de l’onglet Installé dans
/plugin - Chaque mod installé, pour une session : démarrez Claude Code avec
--safe-mode, qui laisse également de côté vos autres personnalisations - Chaque mod que vous avez installé, dans chaque session : définissez
"disableAllHooks": truedans~/.claude/settings.json. Vos settings hooks et votre ligne d’état personnalisée s’arrêtent aussi. Ce que votre organisation gère continue de fonctionner.
Si vous avez défini
CLAUDE_CODE_ENABLE_FUNCTION_HOOKS lors de l’accès anticipé, supprimez-le. Claude Code v2.1.287 et versions ultérieures l’ignorent, donc le définir à 0 ne garde pas les mods désactivés.Voir quels mods une session a chargés
Pour voir quels mods une session de terminal a chargés, exécutez/plugin à l’invite Claude Code. Une ligne atténuée sous les onglets donne le compte et les noms, comme 1 mod active · first-mod. Si un mod que vous avez installé n’est pas nommé là, voir Découvrir pourquoi un mod ne fait rien.
Comment fonctionne un mod
Un mod est un plugin dont le code enregistre les gestionnaires d’événements, appelés hooks. Claude Code exécute un hook quand son événement se produit, comme quand Claude appelle un outil ou quand le spinner est dessiné. Un petit mod a trois fichiers :plugin.json: le manifeste du pluginhooks.json: pointe vers votre fichier de coderegister.js: votre code, appelé le module hooks. Il dit à Claude Code sur quels événements exécuter vos fonctions.
register.js complet. Il compte les appels d’outils que Claude fait et affiche le compte à côté du spinner pendant que Claude travaille, comme dans Thinking · tool calls: 3….
hooks/register.js
calls en haut :
- Le hook
tool.calls’exécute chaque fois que Claude est sur le point d’utiliser un outil. Il ajoute un àcalls, demande à Claude Code de redessiner l’interface, et laisse l’outil s’exécuter comme d’habitude. - Le hook
ui.renders’exécute chaque fois que Claude Code dessine le spinner. Il garde le propre spinner de Claude Code et ajoute le compte après le mot.
Thinking · tool calls: 1…, puis 2…, puis 3….
Ce qu’un hook peut faire avec un événement
Claude Code exécute votre hook avant d’agir sur l’événement, donc le hook décide ce qui se passe ensuite. Il a trois choix :- Observer : noter ce qui se passe et le laisser continuer inchangé, comme le fait le hook
tool.calldans l’exemple - Réécrire : modifier l’événement avant qu’il ne continue, comme le fait le hook
ui.renderquand il ajoute le compte au spinner - Répondre : gérer l’événement lui-même, pour que le comportement habituel ne s’exécute pas, comme refuser une commande
Où les mods s’exécutent
Les hooks d’un mod s’exécutent dans chaque type de session qui charge le plugin. Le dessin est plus étroit : seul le terminal et l’application Desktop affichent les volets, les bandes et les lignes remplacées d’un mod. Ce tableau énumère chaque endroit où vous pourriez exécuter Claude Code :
Un mod qui dessine peut vérifier dans quelle application il s’exécute et revenir à une ligne dans la transcription ou à la réponse textuelle d’une commande où rien ne dessine.
Contrôler les mods de votre organisation
Les administrateurs décident si les mods s’exécutent et lesquels, via les paramètres gérés. Gérer les mods de votre organisation couvre ce qui se passe par défaut, comment examiner un mod et comment appliquer une politique avec un mod de votre propre.Comparer les mods, les settings hooks, les skills et les serveurs MCP
Les mods, les settings hooks, les skills et les serveurs MCP se chevauchent. Ce tableau montre ce que chacun est et quand le choisir.
Chacun des autres a sa propre page : Hooks, Skills et MCP. Un plugin peut contenir les quatre, donc un mod peut être livré dans le même plugin qu’une skill et un serveur MCP.
Mods intégrés à Claude Code
Certaines fonctionnalités propres à Claude Code sont des mods. Pour voir ceux que votre session possède, exécutez/plugin à l’invite Claude Code et allez à l’onglet Installed, qui les répertorie sous Built-in. Vous ne pouvez pas mettre à jour ou désinstaller un mod intégré, et la dernière colonne du tableau indique comment désactiver chacun d’eux. La ligne mods active exclut les mods intégrés.
Ce tableau répertorie chaque entrée par le nom que /plugin affiche :
Les paramètres et les drapeaux qui arrêtent les mods installés, tels que
disableAllHooks, --bare et --safe-mode, n’arrêtent pas les mods intégrés.
Lire le code source des mods intégrés
Le code source de quatre de ces mods est public dans le répertoiremods du référentiel Claude Code. Chacun est un plugin complet avec son module hooks et ses tests :
diff: le volet/diff, avec des boutons liés à des actions clavier et le défilement que le mod gère lui-mêmeagents-md: chargeAGENTS.mdcomme instructions de projet, avec une optionuserConfigsec-default: la protection décrite dans Know what happens by default, un modèle pour un mod qui applique la politiquetelemetry: ajoute des méthodes que d’autres mods peuvent appeler, et expédie leurs types
Étapes suivantes
- Créer un mod : en construire un qui compte les appels d’outils, affiche le compte à côté du spinner, et ajoute une commande, et apprenez la boucle d’édition et de rechargement
- Dessiner dans l’interface : volets, la bande au-dessus de l’invite, boutons, champs de texte et état
- Réagir aux événements : appels d’outils, invites, tours et l’ordre dans lequel les mods s’exécutent
- Utiliser l’API des mods : commandes, outils, appels de modèles, minuteurs et fichiers
- Tester un mod : tests automatisés qui s’exécutent sans session
- Dépanner un mod : les raisons pour lesquelles un mod ne fait rien et le journal de débogage
- Gérer les mods de votre organisation : valeurs par défaut, paramètres gérés, examen d’un mod et mods de politique
- Référence des mods : chaque événement, méthode, élément et limite