Claude Code mods : l'agent se réécrit en 80 lignes, sans sandbox
Anthropic ouvre les entrailles de Claude Code aux fonctions TypeScript. J'ai passé deux soirées dedans, voici ce qui tient et ce qui pique.
Le 1er octobre, Anthropic a discrètement transformé Claude Code en plateforme programmable : les « mods », des fonctions JavaScript ou TypeScript qui tournent à l'intérieur même de la session et peuvent réécrire un prompt avant qu'il parte au modèle, bloquer un appel d'outil ou redessiner l'interface. J'ai passé deux soirées dessus depuis l'annonce. Si vous vivez dans un terminal avec Claude Code — ou si votre équipe y vit —, c'est la plus grosse évolution de l'outil depuis les plugins. Et le plus gros sujet de sécurité aussi.
Des hooks aux mods : ce qu'Anthropic a changé le 1er octobre
Jusqu'ici, pour intervenir dans le cycle de vie de Claude Code, on avait les settings hooks : des scripts shell appelés événement par événement, qui dialoguent en stdin/stdout et oublient tout entre deux appels. Les mods changent de catégorie. D'après le guide officiel d'Anthropic, « un mod est un petit fichier JavaScript ou TypeScript qui s'exécute dans votre session Claude Code ». Le module se charge une fois, garde un état, et reçoit les événements en direct : session.start, turn.complete, prompt.submit, tool.call, command.run, ui.render.
Chaque hook reçoit trois arguments : $ (l'API des mods), e (les données de l'événement) et next (le middleware suivant). Si vous avez déjà écrit du Express, vous êtes chez vous. Un mod peut observer sans rien toucher, réécrire les données avant qu'elles continuent leur chemin, ou répondre à la place du traitement normal. Anthropic mange sa propre cuisine : la commande /diff est désormais livrée… comme un mod, parmi quatre mods intégrés d'origine.
Mon premier mod en une soirée : la météo du contexte
Pour tester, j'ai reconstruit une variante du Token Weather d'Anthropic : un bandeau au-dessus du prompt qui affiche l'usage du contexte via $.session.usage(), avec une icône météo qui se dégrade à mesure que la fenêtre se remplit. Environ 80 lignes, hot reload à chaque sauvegarde, pas de redémarrage de session. Honnêtement, c'est la meilleure boucle de dev que j'ai vue sur un outil Anthropic.
Deux galères quand même, pour être complet. D'abord, j'ai stocké mon compteur de tokens dans une variable de module : le hot reload remet ces variables à zéro à chaque rechargement, et j'ai affiché des chiffres faux pendant une bonne heure avant de comprendre qu'il fallait tout passer par $.state. Ensuite, j'ai voulu pousser chaque tool.call vers notre backend d'observabilité en HTTP synchrone : le dispatch d'un hook est limité à une dizaine de secondes, et sur un réseau mou, mes tours de parole se sont mis à ramer. La parade : empiler en local, purger sur session.end.
Que peut toucher un mod Claude Code, exactement ?
L'API $ expose onze familles : ui (panneaux, onglets, boutons, toasts), fs, process, http, model, state, store, clock, tool, command — dont $.command.register() pour créer ses propres commandes slash — et session. Les exemples du dépôt playground d'Anthropic donnent le ton : Blast Radius intercepte les commandes bash risquées (rm -rf, git reset, migrations) et ouvre un panneau de confirmation listant ce qui serait touché ; Replay Theater enregistre les éditions de fichiers et les rejoue diff par diff via /replay.
On est au-delà du gadget : un mod peut retenir un tool call, y répondre sans l'exécuter, ou le rerouter vers un autre modèle. Côté distribution, rien de neuf à apprendre : un mod est un plugin dont le comportement vit dans un module JS, et il circule par la même mécanique que les marketplaces privés de plugins que j'avais montés pour mon équipe. Pour un lead dev, ça veut dire des garde-fous maison déployables sur tous les postes en une commande.
Sécurité : pas de sandbox, et c'est écrit noir sur blanc
Le runtime des mods n'expose ni DOM ni Node directement — tout passe par l'API $. Ne vous y trompez pas : $.fs lit et écrit vos fichiers, $.process.run() lance des sous-processus, $.http sort sur le réseau. En pratique, un mod a exactement les accès de Claude Code : il voit chaque prompt, chaque sortie d'outil, peut approuver un appel avant que vous soyez sollicité, et consommer votre forfait via $.model. Anthropic le dit sans détour dans son guide : installez un mod comme un package, lisez le dépôt d'abord, uniquement depuis des gens de confiance. Après la faille GitSpawn qui compromettait Claude Code à la simple ouverture d'un repo, on sait ce que pèse ce genre de recommandation.
Côté entreprise, le cadrage existe, et il est plutôt bien pensé : l'administrateur peut restreindre les mods chargés, disableAllHooks coupe tout, --safe-mode empêche l'installation, et claude plugin validate inspecte un paquet avant pose. Les plans Team et Enterprise chargent en premier un mod « security-default » qui bloque les détournements risqués. Un invariant rassurant : aucun mod ne peut modifier le prompt de permission lui-même.
Combien coûtent les mods Claude Code, et comment les activer
Zéro euro de plus : les mods sont inclus et activés par défaut depuis Claude Code 2.1.287, dans le CLI comme dans l'app desktop. Il faut un abonnement Claude donnant accès à Claude Code, rien d'autre. L'installation passe par le système de plugins :
[[terminal:/plugin marketplace add anthropics/claude-code-playground /plugin install token-weather@claude-code-playground /plugin reload]]Le playground fournit des exemples typés (manifeste, hooks.json, module, tests) dont je conseille de partir plutôt que d'une page blanche. Et si vous poussez un mod maison à l'équipe, traitez-le comme n'importe quel livrable : les evals de plugins que je documentais pour les skills s'appliquent telles quelles — un mod qui réécrit des prompts sans tests de non-régression, c'est une panne silencieuse garantie.
Claude Code mods : mon avis après 48 heures
Deux jours, c'est court, donc je parle de première prise en main, pas de bilan. Mais le cap est clair : Claude Code devient ce que le navigateur est devenu avec les extensions — une plateforme qu'on plie à son workflow au lieu de la subir. Pour une équipe dev qui a déjà des conventions (commandes interdites, redaction de secrets, télémétrie), les mods sont le chaînon manquant : du garde-fou exécutable, versionné, déployé comme un plugin.
Pour un indépendant qui utilise Claude Code deux heures par semaine, c'est du confort, pas une urgence : les quatre mods intégrés suffisent. Et pour tout le monde, une règle : tant que l'écosystème n'a pas de marketplace relue sérieusement, un mod tiers s'audite ligne par ligne avant installation. La fonctionnalité la plus excitante de l'année sur Claude Code est aussi son nouveau premier vecteur d'attaque. Les deux sont vrais en même temps.