Quick answer
opencode hooks: what to know first
Utilisez les hooks seulement quand le moment d'exécution compte. Ils conviennent aux garde-fous étroits autour d'un outil, pas au remplacement des skills, commands, MCP, permissions ou CI.
Utilisez les hooks seulement quand le moment d'exécution compte. Ils conviennent aux garde-fous étroits autour d'un outil, pas au remplacement des skills, commands, MCP, permissions ou 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. Quand utiliser les hooks
Utilisez les hooks seulement quand le moment d'exécution compte. Ils conviennent aux garde-fous étroits autour d'un outil, pas au remplacement des skills, commands, MCP, permissions ou CI.
Si le besoin ne dépend pas du moment exact, gardez la solution dans une skill, une command, une permission ou MCP. Un hook doit avoir une condition claire et un résultat visible.
2. Où placer les hooks
Utilisez les hooks seulement quand le moment d'exécution compte. Ils conviennent aux garde-fous étroits autour d'un outil, pas au remplacement des skills, commands, MCP, permissions ou CI.
Les règles du dépôt doivent rester près du projet pour être relues par l'équipe. Les préférences personnelles vont dans le global, et les paquets npm demandent une revue de source et de version.
3. Choisir l'événement
Utilisez les hooks seulement quand le moment d'exécution compte. Ils conviennent aux garde-fous étroits autour d'un outil, pas au remplacement des skills, commands, MCP, permissions ou CI.
Écrivez d'abord la phrase de l'événement : avant l'exécution, après l'outil ou après un changement de fichier. Si elle mélange plusieurs actions, divisez le hook.
4. Exemples sûrs et risques
Utilisez les hooks seulement quand le moment d'exécution compte. Ils conviennent aux garde-fous étroits autour d'un outil, pas au remplacement des skills, commands, MCP, permissions ou CI.
Les exemples sûrs avertissent, normalisent ou journalisent très peu d'informations. Évitez commits, pushes, secrets, réseau distant et modifications silencieuses.
5. Tester dans un dépôt jetable
Utilisez les hooks seulement quand le moment d'exécution compte. Ils conviennent aux garde-fous étroits autour d'un outil, pas au remplacement des skills, commands, MCP, permissions ou CI.
Le test doit utiliser un petit dépôt, une commande sans risque, une revue de sortie et un chemin clair pour désactiver le plugin.

6. Dépannage par couches
Utilisez les hooks seulement quand le moment d'exécution compte. Ils conviennent aux garde-fous étroits autour d'un outil, pas au remplacement des skills, commands, MCP, permissions ou CI.
Pour diagnostiquer, désactivez une couche à la fois et répétez la même tâche. Vous séparez ainsi cycle de vie, instructions, MCP et fournisseur.
7. Séparer GitHub et CI
Utilisez les hooks seulement quand le moment d'exécution compte. Ils conviennent aux garde-fous étroits autour d'un outil, pas au remplacement des skills, commands, MCP, permissions ou CI.
GitHub et CI doivent rester dans des workflows explicites. Les hooks locaux soutiennent seulement les garde-fous de session.
OpenCode hooks FAQ
Que sont les hooks OpenCode ?
Des callbacks de cycle de vie retournés par des plugins.
Sont-ils identiques aux plugins ?
Non. Le plugin charge et retourne les hooks.
Où les placer ?
Dans le projet pour les règles du dépôt ; globalement pour les préférences personnelles.
Remplacent-ils les permissions ?
Non. Les permissions gèrent les politiques larges.
Comment les tester ?
Dans un dépôt jetable avec une petite tâche et un retour arrière clair.
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.
