Aller au contenu principal

Pieges courants des hooks

Pieges courants des hooks

Quand vous travaillez avec les hooks, il y a un piege important a connaitre : la gestion des chemins.

Le probleme des chemins absolus

La documentation de Claude Code recommande d’utiliser des chemins absolus (plutot que relatifs) pour les scripts de hooks. Cette recommandation aide a attenuer les attaques par interception de chemin et plantation de binaires.

Cependant, cette recommandation rend beaucoup plus difficile le partage des fichiers settings.json entre developpeurs. La raison est simple : le chemin absolu vers les scripts de hooks sur votre machine sera probablement different de celui sur la machine d’un collegue, simplement parce que vous placerez le projet dans des repertoires differents.

La solution : fichier template avec placeholder

Pour resoudre ce probleme, vous pouvez utiliser un fichier settings.example.json avec un placeholder $PWD :

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Read|Grep",
        "hooks": [
          {
            "type": "command",
            "command": "node $PWD/hooks/read_hook.js"
          }
        ]
      }
    ]
  }
}

Puis ajoutez un script d’initialisation (par exemple scripts/init-claude.js) qui :

  1. Lit le fichier settings.example.json
  2. Remplace les placeholders $PWD par le chemin absolu reel du projet
  3. Copie le resultat dans .claude/settings.local.json

Mise en pratique

Integrez cette initialisation dans votre script de setup :

{
  "scripts": {
    "setup": "npm install && node scripts/init-claude.js"
  }
}

Ainsi, chaque developpeur qui lance le setup obtient automatiquement un fichier settings.local.json avec les bons chemins absolus pour sa machine.

Points a retenir

  • Utilisez des chemins absolus dans vos configurations de hooks pour la securite
  • Ne commitez pas settings.local.json — il contient des chemins specifiques a votre machine
  • Commitez un fichier template (settings.example.json) avec des placeholders
  • Automatisez la generation du fichier local via un script de setup
  • Redemarrez Claude Code apres toute modification des fichiers de parametres