Ce face /hooks
Hook-urile interceptează acțiunile agentului chiar înainte sau imediat după execuție, de exemplu pentru verificări prealabile sau pentru formatarea automată după scrierea fișierelor. /hooks afișează toate hook-urile încărcate și active.
Se definesc în .agents/hooks.json (proiect), ~/.gemini/config/hooks.json (global) sau în hooks.json-ul unui plugin. Hook-urile puse în ~/.gemini/antigravity-cli/settings.json nu se încarcă.
Fișierul asociază un nume fiecărui hook, cu evenimentele lui: SessionStart, PreToolUse, PostToolUse (filtrabile după numele uneltei cu matcher), PreInvocation, PostInvocation și Stop. "enabled": false dezactivează un hook fără să-l ștergi.
Sintaxă și opțiuni
| Opțiune / Parametru | Descriere |
|---|---|
SessionStart |
O dată, la începutul conversației, înainte de primul apel al modelului. |
PreToolUse / PostToolUse |
Înainte / după o unealtă; matcher este numele uneltei, de exemplu run_command. |
PreInvocation / PostInvocation |
Înainte / după fiecare apel al modelului. |
Stop |
La terminarea buclei de execuție. |
enabled |
Opțional; false dezactivează hook-ul. |
Exemple practice
Exemplul 1: Linter după comenzile de terminal
{
"my-linter-hook": {
"PostToolUse": [
{
"matcher": "run_command",
"hooks": [
{ "type": "command", "command": "./scripts/lint.sh", "timeout": 10 }
]
}
]
}
}
Exemplul 2: Verificarea hook-urilor active
> /hooks
Greșeli frecvente și bune practici
- Definești hook-urile în
settings.json. CLI-ul le citește doar din fișierelehooks.json. - Scrii un hook
PreToolUselent fărătimeout; fiecare apel de unealtă îl așteaptă.
Întrebări & Exemple practice:
/hooksAi o întrebare despre /hooks sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.