Quick answer
opencode hooks: what to know first
Usa hooks solo quando il momento di esecuzione conta. Sono guardrail stretti attorno agli strumenti, non sostituiscono skills, commands, MCP, permessi o CI.
Usa hooks solo quando il momento di esecuzione conta. Sono guardrail stretti attorno agli strumenti, non sostituiscono skills, commands, MCP, permessi o CI.
This page deliberately separates `opencode hooks` from the site's broader OpenCode Plugins guide. The plugins page explains when packaged extensions are worth installing. This page focuses on lifecycle behavior: event choice, scope, placement, examples, failure modes, testing, rollback, and how hooks interact with tools, skills, commands, MCP, and GitHub automation.
Related site guides: OpenCode Plugins, OpenCode Skills, OpenCode MCP, OpenCode session storage.
1. Quando usare hooks
Usa hooks solo quando il momento di esecuzione conta. Sono guardrail stretti attorno agli strumenti, non sostituiscono skills, commands, MCP, permessi o CI.
Se il bisogno non dipende dal momento esatto, tieni la soluzione in skill, command, permesso o MCP. Un hook deve avere condizione chiara e risultato visibile.
2. Dove vivono gli hooks
Usa hooks solo quando il momento di esecuzione conta. Sono guardrail stretti attorno agli strumenti, non sostituiscono skills, commands, MCP, permessi o CI.
Le regole del repository devono stare vicino al progetto per la revisione del team. Le preferenze personali sono globali, i pacchetti npm richiedono revisione di fonte e versione.
3. Scegliere l'evento
Usa hooks solo quando il momento di esecuzione conta. Sono guardrail stretti attorno agli strumenti, non sostituiscono skills, commands, MCP, permessi o CI.
Scrivi prima la frase dell'evento: prima dell'esecuzione, dopo lo strumento o dopo la modifica file. Se contiene più azioni, dividi l'hook.
4. Esempi sicuri e rischi
Usa hooks solo quando il momento di esecuzione conta. Sono guardrail stretti attorno agli strumenti, non sostituiscono skills, commands, MCP, permessi o CI.
Gli esempi sicuri avvisano, normalizzano o registrano poco. Evita commit, push, segreti, rete remota e modifiche silenziose negli hooks.
5. Testare in repository usa e getta
Usa hooks solo quando il momento di esecuzione conta. Sono guardrail stretti attorno agli strumenti, non sostituiscono skills, commands, MCP, permessi o CI.
Il test usa un repository piccolo, un comando innocuo, revisione dell'output e un percorso chiaro per disattivare il plugin.

6. Debug per livelli
Usa hooks solo quando il momento di esecuzione conta. Sono guardrail stretti attorno agli strumenti, non sostituiscono skills, commands, MCP, permessi o CI.
Nel debug disattiva un livello alla volta e ripeti lo stesso task. Così separi codice di ciclo, istruzioni, MCP e provider.
7. Separare GitHub e CI
Usa hooks solo quando il momento di esecuzione conta. Sono guardrail stretti attorno agli strumenti, non sostituiscono skills, commands, MCP, permessi o CI.
GitHub e CI devono restare in workflow espliciti. Gli hooks locali supportano solo guardrail durante la sessione.
OpenCode hooks FAQ
Che cosa sono gli hooks OpenCode?
Callback di ciclo di vita restituiti dai plugin.
Sono uguali ai plugin?
No. Il plugin carica e restituisce hooks.
Dove inserirli?
Nel progetto per regole del repository; globalmente per preferenze personali.
Sostituiscono i permessi?
No. I permessi gestiscono policy ampie.
Come testarli?
In un repository usa e getta con task piccolo e rollback chiaro.
Sources
Official OpenCode documentation and current SERP evidence were checked on 2026-07-23. Plugin APIs and event names can change, so verify exact code against the current docs before shipping a hook.
