DannyAI
🧩

Les mods de Claude Code

Volets, bandeaux, hooks : personnalisez Claude Code avec vos propres briques

⚡ C'est quoi un mod ? Un petit plugin écrit en hooks de fonctions, qui s'affiche ou s'exécute dans Claude Code (terminal ou onglet Code de l'app bureau) et se recharge à chaud pendant la session.
4
Surfaces visuelles
5
Hooks
8
Capacités
17
Total
Un mod = un dossier avec 3 fichiers (plugin.json, hooks.json, register.ts). Il choisit ce qu'il affiche (ui), ce qu'il intercepte (hooks) et ce qu'il utilise ($).
▶ Les mods en 35 secondes
🖼️ Ce qu'on voit
BriqueTypeUtilité
PaneVISUELVolet, panneau latéral ou vue en direct. Ouvert par une action de l'utilisateur (commande tapée, bouton cliqué), il s'affiche à toute largeur. Ouvert sans demande, il attend 144 colonnes de terminal.
BandVISUELBandeau au-dessus du prompt (AbovePrompt) : une ligne d'info ou d'actions toujours sous les yeux.
Status lineVISUELUne entrée dans la barre d'état, posée par $.ui.status(text) depuis n'importe quel hook, effacée avec undefined.
ToastVISUELNotification brève avec $.ui.toast(text), déclenchable depuis n'importe quel hook.
🪝 Ce qu'on intercepte (hooks)
HookTypeUtilité
tool.callHOOKBloquer ({ deny }), réécrire ou observer le résultat d'un appel d'outil, outil par outil.
prompt.submitHOOKModifier ou observer un prompt avant son envoi, avec next({ ...e, text }).
session.startHOOKS'exécute au début de la session (et à chaque rechargement du mod) : enregistrer une commande, ouvrir un volet, lancer un minuteur.
command.runHOOKRépond à une slash command déclarée avec $.command.register({ name, description }), en renvoyant { text }.
ui.renderHOOKDessine un élément (Pane, AbovePrompt…) à partir de Box, Text, Button, adaptés à la surface : terminal, desktop, vscode ou mobile.
🧰 Ce qu'on utilise (capacités $)
CapacitéTypeUtilité
$.stateAPIValeurs gardées pour la session, déclarées dans un contrat de types (types/index.d.ts), conservées au rechargement.
$.storeAPIValeurs conservées d'une session à l'autre.
$.clockAPITravail sur minuteur : rafraîchir un volet, interroger périodiquement.
$.toolAPIDéclarer un outil que le modèle peut appeler.
$.agentAPIDéclarer un type de sous-agent.
$.modelAPIFaire des appels au modèle depuis le mod.
$.fsAPILire et écrire des fichiers.
$.processAPILancer des processus.
🚀 Créer son premier mod
  1. Chargez le skill plugin-authoring dans Claude Code : il connaît l'API exacte de votre version.
  2. Décrivez le mod voulu (un volet, un bandeau, un blocage d'outil…). Claude écrit un dossier avec .claude-plugin/plugin.json, hooks/hooks.json et hooks/register.ts.
  3. À la première écriture, Claude Code vous demande : Enable hot reloading for this session?. Répondez Enable for this session : le mod se charge à la fin du tour, puis se recharge à chaque modification.
  4. Vérifiez avant chargement avec claude plugin validate <dossier du mod>. Si vous avez refusé le rechargement à chaud, chargez le mod avec claude --plugin-dir <dossier>.
Exemple minimal : un toast à chaque prompt envoyé
// hooks/register.ts export function register(on) { on('prompt.submit', async ($, e, next) => { $.ui.toast('Prompt envoyé'); return next(e); }); }
// hooks/hooks.json { "modules": ["./register.ts"] } // .claude-plugin/plugin.json { "name": "mon-premier-mod", "version": "0.1.0", "description": "Toast à chaque prompt" }