OpenCode hooks

Guía de OpenCode Hooks: 7 controles seguros

Aprende cuándo usar hooks de OpenCode, dónde colocarlos, cómo elegir eventos de ciclo de vida y cómo probarlos sin ocultar automatización riesgosa.

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 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.

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. 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.