OpenCode hooks

Guida OpenCode Hooks: 7 controlli sicuri

Quando usare gli hooks OpenCode, dove inserirli, come scegliere gli eventi e come testarli senza nascondere automazioni rischiose.

OpenCode hook lifecycle around a terminal, repository, and event checkpoints
OpenCode hooks should stay tied to a clear lifecycle moment, not become hidden all-purpose automation.

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.

Four-step OpenCode hook safety flow from event choice to rollback
A safe hook is narrow, tested in a disposable repository, and easy to disable during troubleshooting.

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.