Quick answer
opencode hooks: what to know first
Hooks는 정확한 실행 시점이 중요할 때만 사용합니다. 도구 전후의 작은 가드레일이며 skills, commands, MCP, 권한, CI를 대체하지 않습니다.
Hooks는 정확한 실행 시점이 중요할 때만 사용합니다. 도구 전후의 작은 가드레일이며 skills, commands, MCP, 권한, 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. hooks를 쓸 때
Hooks는 정확한 실행 시점이 중요할 때만 사용합니다. 도구 전후의 작은 가드레일이며 skills, commands, MCP, 권한, CI를 대체하지 않습니다.
정확한 시점이 핵심이 아니라면 skill, command, permission, MCP에 두는 편이 안전합니다. Hook은 명확한 조건과 보이는 결과가 필요합니다.
2. hooks 위치
Hooks는 정확한 실행 시점이 중요할 때만 사용합니다. 도구 전후의 작은 가드레일이며 skills, commands, MCP, 권한, CI를 대체하지 않습니다.
저장소 규칙은 project에 두어 팀이 검토하게 합니다. 개인 설정은 global, npm package는 source와 version 검토가 전제입니다.
3. 이벤트 선택
Hooks는 정확한 실행 시점이 중요할 때만 사용합니다. 도구 전후의 작은 가드레일이며 skills, commands, MCP, 권한, CI를 대체하지 않습니다.
먼저 이벤트를 한 문장으로 씁니다. 실행 전, tool 이후, file 변경 이후 중 하나를 분명히 하고 여러 동작이 섞이면 hook을 나눕니다.
4. 안전 예시와 위험
Hooks는 정확한 실행 시점이 중요할 때만 사용합니다. 도구 전후의 작은 가드레일이며 skills, commands, MCP, 권한, CI를 대체하지 않습니다.
안전한 예시는 경고, 정규화, 최소 기록입니다. commit, push, secret, 원격 network, 조용한 대규모 편집을 hook에 숨기지 마세요.
5. 임시 저장소에서 테스트
Hooks는 정확한 실행 시점이 중요할 때만 사용합니다. 도구 전후의 작은 가드레일이며 skills, commands, MCP, 권한, CI를 대체하지 않습니다.
작은 repo, 무해한 command, 출력 검토, plugin 비활성화 경로까지 포함해 테스트합니다.

6. 계층별 진단
Hooks는 정확한 실행 시점이 중요할 때만 사용합니다. 도구 전후의 작은 가드레일이며 skills, commands, MCP, 권한, CI를 대체하지 않습니다.
문제가 생기면 한 계층씩 끄고 같은 task를 반복합니다. Lifecycle code, instructions, MCP, provider를 분리할 수 있습니다.
7. GitHub와 CI 분리
Hooks는 정확한 실행 시점이 중요할 때만 사용합니다. 도구 전후의 작은 가드레일이며 skills, commands, MCP, 권한, CI를 대체하지 않습니다.
GitHub와 CI는 명시적인 workflow에 둡니다. Local hooks는 session 중 guardrail만 지원해야 합니다.
OpenCode hooks FAQ
OpenCode hooks란?
plugins가 반환하는 생명주기 callback입니다.
plugins와 같은가요?
아닙니다. plugin이 hooks를 로드하고 반환합니다.
어디에 두나요?
저장소 규칙은 project, 개인 워크플로는 global에 둡니다.
권한을 대체하나요?
아닙니다. 넓은 정책은 permissions가 담당합니다.
어떻게 테스트하나요?
임시 저장소에서 작은 작업과 rollback을 확인합니다.
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.
