Aperçu des mods
Ajoutez des volets, des commandes et des règles d'appel d'outils à Claude Code avec un mod. Découvrez ce qu'un mod peut faire, comment en créer ou en installer un, et où les mods s'exécutent.
Un mod est un plugin qui change l'apparence et le comportement de Claude Code. Il est composé de gestionnaires d'événements JavaScript ou TypeScript : Claude Code en appelle un quand un événement se produit, comme un appel d'outil, une invite soumise, ou une partie de l'interface en cours de dessin, et le gestionnaire peut observer l'événement, le modifier, ou le reprendre. Utilisez un mod pour ajouter votre propre fonctionnalité à Claude Code, comme un volet qui affiche le graphique de la saturation de votre contexte après chaque requête. Pour les fichiers d'un mod et un exemple complet, voir Comment fonctionne un mod.
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.
Les mods fonctionnent dans le CLI Claude Code et dans l'onglet Code de l'application Claude Desktop. Voir Où les mods s'exécutent pour comprendre comment ils se comportent ailleurs, comme dans l'extension VS Code, 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 est du code qui s'exécute avec vos permissions. Il peut lire et écrire vos fichiers, démarrer des processus et faire des requêtes réseau. Installez les mods uniquement à partir d'auteurs et de marketplaces en qui vous avez confiance. Voir Décider si vous faites confiance à 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.
Installer les plugins couvre les marketplaces, les scopes, l'extension VS Code et l'application Desktop, et garder les plugins à jour, qui s'appliquent tous à un plugin contenant un mod sans modifications.
Si vous installez ou mettez à jour un mod à partir de votre shell pendant qu'une session est ouverte, exécutez /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
Un mod qui approuve les appels d'outils peut approuver un appel qu'une règle 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écutez claude plugin validate sur le répertoire du plugin :
claude plugin validate ./some-mod
Les lignes 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écutez claude --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 utilisez Claude Code via une organisation, un administrateur peut également limiter les mods qui se chargent. Les administrateurs commencent à Empêcher les mods installés par l'utilisateur de se charger.
Pour savoir si les mods peuvent se charger pour vous, voir Vérifier si les mods peuvent se charger.
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 :
first-mod/
├── .claude-plugin/
│ └── plugin.json
└── hooks/
├── hooks.json
└── register.js
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.
Ceci est un 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….
// Le compte, partagé par les deux hooks ci-dessous
let calls = 0
// Claude Code appelle ceci une fois quand le mod se charge
export function register(on) {
// S'exécute chaque fois que Claude est sur le point d'utiliser un outil
on('tool.call', async ($, e, next) => {
calls += 1
// Demandez à Claude Code de redessiner l'interface, pour que le nouveau compte s'affiche
$.ui.invalidate('ui.render')
// Laissez l'outil s'exécuter comme d'habitude
return next(e)
})
// S'exécute chaque fois que Claude Code dessine le spinner
on('ui.render', { component: 'Spinner' }, async ($, e, next) => {
// Gardez le spinner de Claude Code, avec le compte ajouté après son mot
return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })
})
}
Le fichier enregistre deux hooks, et les deux utilisent la variable 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.
Cet enregistrement montre le mod en action. Regardez la ligne du spinner au-dessus de la boîte d'invite : pendant que Claude énumère un répertoire et lit deux fichiers, il lit 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
Pour faire quoi que ce soit en dehors de son propre code, comme dessiner, ajouter une commande, appeler un modèle, lire un fichier, démarrer un processus ou faire une requête réseau, un hook appelle l'API des mods. Un hook n'a pas d'autre moyen de faire ces choses, c'est pourquoi Claude Code peut énumérer ce qu'un mod fait avant de l'installer.
Pour le code derrière chaque choix, voir Réagir aux événements. Pour ce qu'un hook peut appeler, voir Utiliser l'API des mods.
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 :
| Où vous exécutez Claude Code | Les hooks s'exécutent | Ce que le mod dessine apparaît |
|---|---|---|
claude dans un terminal, y compris le terminal intégré d'un éditeur et le plugin JetBrains |
Oui | Oui |
| L'onglet Code de l'application Desktop, sauf dans une session WSL | Oui | Oui, sauf les éléments que le tableau des éléments marque comme terminal uniquement |
| Une session WSL dans l'application Desktop | Non, car les plugins ne sont pas disponibles dans les sessions WSL | Non |
| Le panneau de chat de l'extension VS Code | Oui | Non |
claude -p et le SDK Agent |
Oui | Non |
| Contrôle à distance à partir de claude.ai ou de l'application mobile | Oui, dans la session sur votre machine | Dans le terminal sur votre machine |
| Une session cloud | Oui, pour un plugin qui atteint la session cloud | Non |
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.
| Mod | Settings hook | Skill | Serveur MCP | |
|---|---|---|---|---|
| Ce que c'est | Des fonctions dans un plugin que Claude Code appelle dans son propre processus | Une commande shell, une requête HTTP ou une invite que Claude Code exécute sur un événement du cycle de vie | Un fichier SKILL.md d'instructions que Claude lit |
Un processus ou un service externe qui donne des outils à Claude |
| Ce qu'il peut modifier | Les appels d'outils, les invites, les commandes, les tours et ce que l'interface dessine | Si un appel d'outil ou une invite continue, les arguments et le résultat d'un appel d'outil, et le contexte ajouté pour Claude | Ce que Claude sait et fait | Les outils que Claude a |
| Peut-il dessiner dans l'interface | Oui | Non | Non | Non |
| Ce que vous écrivez | JavaScript ou TypeScript | Un script et une entrée settings.json |
Markdown | Un serveur dans n'importe quel langage |
| Choisissez-le quand | Vous voulez un volet, une bande au-dessus de l'invite, une commande personnalisée, ou réécrire un événement | Vous voulez bloquer, autoriser ou enregistrer un événement avec un script que vous avez déjà | Vous continuez à coller les mêmes instructions dans le chat | Claude doit atteindre un système externe |
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 :
Nom dans /plugin |
Ce qu'il fait | Où il est activé | Comment le désactiver |
|---|---|---|---|
cc-plugin-agents-md |
Charge AGENTS.md comme instructions de projet |
Chaque session, sauf celles qui ne peuvent pas lire AGENTS.md |
Désactivez-le dans /plugin, ou choisissez les fichiers d'instructions à charger |
cc-plugin-diff |
Prend en charge /diff et dessine son volet |
Sessions de terminal interactif | Désactivez-le dans /plugin. /diff reste, et la version intégrée de Claude Code de la commande y répond. |
cc-plugin-plugin-authoring |
Donne à Claude la plugin-authoring skill pour écrire des mods. Elle contient une skill et aucun code de mod. |
Sauf si Anthropic a désactivé les mods installés à distance | Désactivez-le dans /plugin |
cc-plugin-sec-default |
Protège ce que votre organisation gère des mods qu'un utilisateur installe | Où la protection se charge | Vous ne pouvez pas. Un administrateur définit l'ordre dans les paramètres gérés |
cc-plugin-telemetry |
Envoie les enregistrements d'analyse que Claude Code et ses mods intégrés enregistrent | Partout où les analyses propres à Claude Code sont activées | Désactivez-le dans /plugin, ou désactivez les analyses, par exemple avec DISABLE_TELEMETRY |
cc-plugin-you-should-know |
Exécute un agent auxiliaire qui vous protège pendant que Claude travaille sur des tâches plus longues. Quand il trouve quelque chose qui vaut la peine de savoir et que vous pourriez manquer, il vous affiche une note au-dessus de l'invite. | Désactivé par défaut. Répertorié dans /plugin -> Installed -> Show disabled s'il est disponible pour votre organisation. Activez avec /plugin enable cc-plugin-you-should-know@builtin. |
Désactivez-le dans /plugin |
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épertoire mods 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