Quick answer
opencode hooks: what to know first
Usa hooks solo cuando el momento exacto importa. Sirven para controles pequeños antes o después de una herramienta, no para sustituir skills, commands, MCP, permisos o CI.
Usa hooks solo cuando el momento exacto importa. Sirven para controles pequeños antes o después de una herramienta, no para sustituir skills, commands, MCP, permisos 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. Cuándo usar hooks
Usa hooks solo cuando el momento exacto importa. Sirven para controles pequeños antes o después de una herramienta, no para sustituir skills, commands, MCP, permisos o CI.
Si la necesidad no depende del momento exacto, mantén la solución en una skill, command, permiso o MCP. Un hook debe tener una condición clara y un resultado visible.
2. Dónde viven los hooks
Usa hooks solo cuando el momento exacto importa. Sirven para controles pequeños antes o después de una herramienta, no para sustituir skills, commands, MCP, permisos o CI.
Las reglas del repositorio deben vivir cerca del proyecto para que el equipo pueda revisarlas. Las preferencias personales pertenecen al ámbito global y los paquetes npm requieren revisión de fuente y versión.
3. Elegir el evento
Usa hooks solo cuando el momento exacto importa. Sirven para controles pequeños antes o después de una herramienta, no para sustituir skills, commands, MCP, permisos o CI.
Escribe primero la frase del evento: antes de ejecutar, después de la herramienta o después del cambio de archivo. Si mezcla varias acciones, divide el hook.
4. Ejemplos seguros y riesgos
Usa hooks solo cuando el momento exacto importa. Sirven para controles pequeños antes o después de una herramienta, no para sustituir skills, commands, MCP, permisos o CI.
Los ejemplos seguros advierten, normalizan o registran información mínima. Evita commits, pushes, secretos, red remota y ediciones silenciosas dentro de hooks.
5. Probar en un repositorio desechable
Usa hooks solo cuando el momento exacto importa. Sirven para controles pequeños antes o después de una herramienta, no para sustituir skills, commands, MCP, permisos o CI.
La prueba debe usar un repositorio pequeño, un comando inofensivo, revisión de salida y una ruta clara para desactivar el plugin.

6. Diagnóstico por capas
Usa hooks solo cuando el momento exacto importa. Sirven para controles pequeños antes o después de una herramienta, no para sustituir skills, commands, MCP, permisos o CI.
Para depurar, desactiva una capa cada vez y repite la misma tarea. Así separas código de ciclo de vida, instrucciones, MCP y proveedor.
7. Separarlos de GitHub y CI
Usa hooks solo cuando el momento exacto importa. Sirven para controles pequeños antes o después de una herramienta, no para sustituir skills, commands, MCP, permisos o CI.
La automatización de GitHub y CI debe quedar en workflows explícitos. Los hooks locales solo deben apoyar guardrails durante la sesión.
OpenCode hooks FAQ
¿Qué son los hooks de OpenCode?
Callbacks de ciclo de vida devueltos por plugins.
¿Son iguales que plugins?
No. El plugin carga y devuelve hooks.
¿Dónde colocarlos?
En el proyecto para reglas del repositorio; globalmente para preferencias personales.
¿Sustituyen permisos?
No. Los permisos controlan políticas amplias.
¿Cómo probarlos?
En un repositorio desechable con una tarea pequeña y rollback claro.
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.
