customize v1.1.1
Personnalise ton expérience Claude Code avec hooks, output styles et status lines sur mesure.
Installation
/plugin install customize@atournayreFonctionnalités
Hooks Personnalisés
Scripts Python pour automatiser et personnaliser le comportement de Claude Code à différents moments du cycle de vie.
Hooks Disponibles
notification.py
- Gestion des notifications système
- Alertes visuelles/sonores pour événements importants
session_start.py
- Exécuté au démarrage de session
- Configuration initiale
- Chargement de contexte
user_prompt_submit.py
- Exécuté avant traitement du prompt utilisateur
- Validation
- Transformation du prompt
pre_tool_use.py
- Exécuté avant chaque utilisation d'outil
- Validation des paramètres
- Logging
- Sécurité
post_tool_use.py
- Exécuté après chaque utilisation d'outil
- Analyse des résultats
- Cleanup
- Métriques
pre_compact.py
- Exécuté avant compaction du contexte
- Sauvegarde de données importantes
- Archivage
stop.py
- Exécuté à l'arrêt de session
- Cleanup final
- Sauvegarde d'état
subagent_stop.py
- Exécuté à l'arrêt d'un sous-agent
- Récupération de résultats
- Cleanup spécifique
Bash Security Validator ⚡
Validateur de sécurité pour commandes bash (TypeScript/Bun)
Protection automatique contre commandes dangereuses via hook PreToolUse :
- ✅ 100+ patterns de sécurité : Bloque rm -rf /, dd, mkfs, etc.
- ✅ 82+ tests automatisés : Suite complète de validation
- ✅ Détection patterns malveillants : Fork bombs, backdoors, exfiltration
- ✅ Protection chemins système : Empêche écritures dans /etc, /usr, /bin
- ✅ Logs sécurité : Traçabilité complète des blocages
Commandes bloquées :
- Destruction système :
rm -rf /,dd if=/dev/zero,mkfs - Escalade privilèges :
sudo,chmod 777,passwd - Attaques réseau :
nc -l,nmap,telnet - Patterns malveillants : Fork bombs, backdoors, manipulation logs
Documentation complète : validators/bash/README.md
Configuration
Les hooks sont automatiquement détectés et chargés depuis customize/hooks/.
Pour activer un hook dans ton projet :
{
"hooks": {
"session_start": "path/to/customize/hooks/session_start.py",
"user_prompt_submit": "path/to/customize/hooks/user_prompt_submit.py",
"pre_tool_use": "path/to/customize/hooks/pre_tool_use.py",
"post_tool_use": "path/to/customize/hooks/post_tool_use.py",
"notification": "path/to/customize/hooks/notification.py",
"pre_compact": "path/to/customize/hooks/pre_compact.py",
"stop": "path/to/customize/hooks/stop.py",
"subagent_stop": "path/to/customize/hooks/subagent_stop.py"
}
}Cas d'Usage
Workflow automatisé :
- Charger contexte projet au démarrage
- Valider commandes avant exécution
- Logger toutes les actions
- Archiver historique à l'arrêt
Sécurité :
- Bloquer outils dangereux
- Valider chemins de fichiers
- Auditer les accès
Métriques :
- Tracker temps d'exécution
- Compter utilisations d'outils
- Analyser patterns
Notifications :
- Alertes pour tâches longues
- Notifications de fin de traitement
- Erreurs critiques
Structure
customize/
├── .claude-plugin/
│ ├── plugin.json
│ └── hooks.json # Configuration hook PreToolUse (Bash Validator)
├── hooks/ # Hooks Python
│ ├── notification.py
│ ├── session_start.py
│ ├── user_prompt_submit.py
│ ├── pre_tool_use.py
│ ├── post_tool_use.py
│ ├── pre_compact.py
│ ├── stop.py
│ ├── subagent_stop.py
│ └── utils/
└── validators/ # Validators TypeScript/Bun
└── bash/ # Bash Security Validator
├── src/
│ ├── cli.ts # Entry point hook PreToolUse
│ └── lib/
│ ├── security-rules.ts # 100+ patterns sécurité
│ ├── validator.ts
│ └── types.ts
├── __tests__/ # 82+ tests
├── package.json
└── README.mdArchitecture Hybride
Ce plugin utilise une architecture hybride Python + TypeScript :
- Hooks Python (
hooks/) : Gestion événements Claude Code (session, prompts, notifications) - Validators TypeScript (
validators/) : Validation sécurité haute performance avec Bun
Pourquoi hybride ?
- Python : Excellent pour scripts hooks, intégration système, flexibilité
- TypeScript/Bun : Performance critique pour validation temps réel, tests robustes (82+)
Dépendances :
- Python 3.x (hooks)
- Bun runtime (validators, optionnel si validators non utilisés)
Développement de Hooks
Template de Base
#!/usr/bin/env python3
"""
Hook description
"""
def main():
"""Hook entry point"""
# Your logic here
pass
if __name__ == "__main__":
main()Best Practices
- Hooks légers et rapides
- Gestion d'erreurs robuste
- Logging approprié
- Pas d'effets de bord inattendus
- Documentation claire
Licence
MIT