Plugin de hooks qui logue les événements du cycle de vie GitHub Copilot CLI dans un fichier JSON, pour l'observabilité et le debug.
Enregistre chaque événement (nom, timestamp UTC, argv, variables d'environnement
COPILOT_*, payload stdin complet) dans un tableau JSON.
Événements couverts :
sessionStart, sessionEnd, userPromptSubmitted, preToolUse, postToolUse,
agentStop, subagentStop, preCompact, notification, errorOccurred.
$COPILOT_PROJECT_DIR/.copilot/logs/lifecycle.json
Les logs sont écrits par projet (dans le dossier du projet courant), pas dans
l'install partagée du plugin. Pensez à ajouter .copilot/logs/ à votre
.gitignore.
- N'écrit jamais sur stdout/stderr et sort toujours en
exit 0— n'interfère jamais avec l'exécution de Copilot CLI (important :preToolUses'exécute avant chaque appel d'outil ; ne rien émettre = aucune décision de permission forcée, l'exécution suit son cours). - Écritures sérialisées via un verrou
mkdir(portable macOS/Linux, pas de dépendance àflock) pour éviter la corruption lors d'appels parallèles. - Écriture atomique via fichier temporaire +
mv.
{
"ts": "2026-07-24T10:00:00Z",
"event": "preToolUse",
"argv": ["...", "preToolUse"],
"env": { "COPILOT_PROJECT_DIR": "..." },
"stdin": { }
}- Résolution du chemin du script : les hooks utilisent
${COPILOT_PLUGIN_ROOT}pour pointer vers le script installé. Vérifiez cette variable selon votre version de Copilot CLI (à défaut, adaptezhooks/hooks.jsonavec un chemin absolu oucwd). - Bug connu github/copilot-cli#2540 :
selon la version du CLI, les hooks
preToolUsedéfinis dans un plugin peuvent ne pas se déclencher (ni en session principale, ni dans les sous-agents). Les autres événements restent loggés.
copilot plugin install lifecycle-logger@sfeir-institute