본문으로 바로가기
리옵트 핸드북
리옵트 핸드북
Kiro 고급 활용Ch1. 플랜 & 환경 설정Ch2. Steering 마스터하기Ch3. 멀티세션 워크플로우Ch4. 서브에이전트 활용Ch5. Hooks 시스템Ch6. MCP 서버 연동Ch7. Powers & 커스텀 도구Ch8. Autopilot 모드 활용Ch9. 컨텍스트 관리Ch10. IDE 기능 활용Ch11. Spec 기반 개발Ch12. 바이브코딩 실전 패턴Ch13. 커뮤니티 & 리소스Ch14. 트러블슈팅 & FAQ엔터프라이즈 패턴빠른 참조 가이드

업데이트 히스토리
핸드북›Kiro 고급 활용›Ch5. Hooks 시스템

Ch5. Hooks 시스템

이벤트 기반 자동화, askAgent와 runCommand 타입, 실전 레시피

핵심 요약

  • Hooks는 fileEdited·fileCreated·promptSubmit·agentStop·userTriggered 같은 이벤트가 발생하면 자동으로 실행되는 액션입니다.
  • 액션 타입은 두 가지로, askAgent는 새 에이전트 세션을 시작하고 runCommand는 쉘 명령을 실행(promptSubmit·agentStop에서만)합니다.
  • filePatterns는 glob을 지원하고, 설정은 프로젝트 .kiro/hooks/ 또는 글로벌 ~/.kiro/hooks/에 둡니다.
  • v0.10의 Task Hooks(pre/postTaskExecution)와 v0.9의 Tool Invocation Hooks(pre/postToolUse, read/write/shell/web 카테고리)까지 범위가 넓어졌습니다.
  • Hooks는 현재 사용자 권한으로 돌아가니 외부 훅 설정은 반드시 검토하고, 너무 많이 걸어두면 성능이 떨어질 수 있습니다.

Hooks는 Kiro의 특정 이벤트 시점에 자동으로 실행되는 액션입니다. 파일 변경, 프롬프트 제출, 에이전트 실행 완료 같은 이벤트에 맞춰 워크플로우를 자동화합니다.

이벤트 종류

주요 이벤트:

  • fileEdited: 파일 저장 시
  • fileCreated: 새 파일 생성 시
  • fileDeleted: 파일 삭제 시
  • promptSubmit: 프롬프트 제출 시
  • agentStop: 에이전트 실행 완료 시
  • userTriggered: 사용자 수동 트리거

Hook 액션 타입

askAgent 타입

새로운 에이전트 세션을 시작합니다.

{
  "id": "lint-on-save",
  "name": "저장 시 린트 실행",
  "description": "TypeScript 파일 저장 시 자동으로 린트 검사",
  "eventType": "fileEdited",
  "hookAction": "askAgent",
  "filePatterns": "**/*.{ts,tsx}",
  "outputPrompt": "방금 수정된 파일에 대해 eslint를 실행하고 발견된 문제들을 수정해주세요."
}

runCommand 타입

쉘 명령을 직접 실행합니다. (promptSubmit, agentStop 이벤트에서만 사용 가능)

{
  "id": "auto-format",
  "name": "자동 포매팅",
  "description": "에이전트 실행 완료 후 자동으로 Prettier 실행",
  "eventType": "agentStop", 
  "hookAction": "runCommand",
  "command": "npm run format"
}

Hook 설정 위치

프로젝트 레벨

.kiro/hooks/
├── lint-on-save.json
├── auto-test.json
└── deploy-check.json

글로벌 레벨

~/.kiro/hooks/
├── global-format.json
└── backup.json

파일 패턴 매칭

filePatterns는 glob 패턴을 지원합니다:

패턴매칭 대상
**/*.ts모든 TypeScript 파일
src/**/*.{js,jsx}src 디렉토리의 JavaScript 파일
*.md루트의 마크다운 파일
!node_modules/**node_modules 제외

실전 레시피

1. TypeScript 파일 저장 시 자동 린트

{
  "id": "typescript-lint",
  "name": "TypeScript 린트 검사",
  "description": "TS/TSX 파일 저장 시 자동으로 ESLint 실행 및 수정",
  "eventType": "fileEdited",
  "hookAction": "askAgent", 
  "filePatterns": "**/*.{ts,tsx}",
  "outputPrompt": "방금 수정된 TypeScript 파일에 대해 `npm run lint:fix`를 실행하고, 자동으로 수정되지 않는 문제가 있다면 코드를 직접 수정해주세요."
}

2. 테스트 파일 생성 시 자동 실행

{
  "id": "run-new-tests",
  "name": "새 테스트 실행",
  "description": "테스트 파일 생성 시 자동으로 해당 테스트 실행",
  "eventType": "fileCreated",
  "hookAction": "askAgent",
  "filePatterns": "**/*.test.{ts,tsx,js,jsx}",
  "outputPrompt": "새로 생성된 테스트 파일을 실행해서 정상 동작하는지 확인해주세요. 실패하는 테스트가 있다면 수정해주세요."
}

3. 프롬프트 제출 후 자동 포매팅

{
  "id": "format-after-prompt",
  "name": "프롬프트 후 포매팅",
  "description": "프롬프트 제출 후 자동으로 Prettier 실행",
  "eventType": "promptSubmit",
  "hookAction": "runCommand",
  "command": "npx prettier --write . --ignore-path .gitignore"
}

4. 에이전트 완료 후 Git 커밋 준비

{
  "id": "prepare-commit",
  "name": "커밋 준비",
  "description": "에이전트 실행 완료 후 변경사항 스테이징",
  "eventType": "agentStop",
  "hookAction": "runCommand", 
  "command": "git add . && git status"
}

5. 컴포넌트 파일 생성 시 스토리북 파일 생성

{
  "id": "create-storybook",
  "name": "스토리북 파일 생성",
  "description": "React 컴포넌트 생성 시 자동으로 스토리북 파일 생성",
  "eventType": "fileCreated",
  "hookAction": "askAgent",
  "filePatterns": "src/components/**/*.tsx",
  "outputPrompt": "새로 생성된 React 컴포넌트에 대응하는 Storybook 스토리 파일(.stories.tsx)을 생성해주세요. 컴포넌트의 주요 props와 상태를 보여주는 기본적인 스토리들을 포함해주세요."
}

6. 수동 트리거 - 전체 프로젝트 검토

{
  "id": "project-review",
  "name": "프로젝트 전체 검토",
  "description": "수동으로 트리거하여 프로젝트 전체 코드 품질 검토",
  "eventType": "userTriggered",
  "hookAction": "askAgent",
  "outputPrompt": "프로젝트 전체를 검토하여 다음 사항들을 확인해주세요: 1) 코드 품질 및 일관성 2) 보안 취약점 3) 성능 최적화 기회 4) 문서화 누락 부분. 발견된 문제점들과 개선 제안을 정리해주세요."
}

Hook 관리 명령어

VS Code 명령 팔레트에서

Ctrl/Cmd + Shift + P
> Kiro: Manage Hooks
> Kiro: Create New Hook  
> Kiro: Trigger Hook

Hook UI 패널

Ctrl/Cmd + Shift + P
> Kiro: Open Hook UI

Task Hooks (v0.10+)

v0.10부터 태스크 실행 전후에 트리거되는 Hook이 생겼습니다.

Pre Task Execution

태스크를 시작하기 전에 셋업 스크립트를 돌리거나 전제조건을 검증합니다.

{
  "id": "pre-task-setup",
  "name": "태스크 전 환경 확인",
  "description": "태스크 시작 전 의존성 및 환경 검증",
  "eventType": "preTaskExecution",
  "hookAction": "runCommand",
  "command": "npm run typecheck && npm run lint"
}

Post Task Execution

태스크 완료 후 테스트, 린팅, 외부 시스템 알림 등을 실행합니다.

{
  "id": "post-task-notify",
  "name": "태스크 완료 알림",
  "description": "태스크 완료 후 Slack 알림 전송",
  "eventType": "postTaskExecution",
  "hookAction": "runCommand",
  "command": "curl -X POST $SLACK_WEBHOOK -d '{\"text\": \"Task completed\"}'"
}

Tool Invocation Hooks (v0.9+)

v0.9부터 특정 도구 사용 전후에 트리거되는 Hook이 생겼습니다. 도구 카테고리(read/write/shell/web)나 와일드카드 이름 필터로 거를 수 있습니다.

Pre Tool Use

특정 도구를 차단하거나 실행 전 추가 컨텍스트를 제공합니다.

{
  "id": "pre-write-check",
  "name": "파일 쓰기 전 검증",
  "eventType": "preToolUse",
  "hookAction": "runCommand",
  "toolCategory": "write",
  "command": "echo 'Validating write operation...'"
}

Post Tool Use

도구 사용 후 로깅, 코드 포맷팅, 후속 지시를 실행합니다.

{
  "id": "post-shell-log",
  "name": "쉘 명령 로깅",
  "eventType": "postToolUse",
  "hookAction": "runCommand",
  "toolCategory": "shell",
  "command": "echo \"$(date): Shell command executed\" >> .kiro/audit.log"
}

주의사항

보안 주의

Hooks는 현재 사용자 권한으로 실행됩니다. 외부에서 가져온 훅 설정은 반드시 검토하세요.

성능 고려

너무 많은 Hook이 설정되면 성능에 영향을 줄 수 있습니다. 필요한 Hook만 활성화하세요.

참고 문서

  • Kiro 공식 사이트: https://kiro.dev
  • Hooks 문서: https://kiro.dev/docs/hooks/
  • Kiro 문서: https://kiro.dev/docs

관련 문서

Ch13. 커뮤니티 & 리소스

공식 문서·changelog·Discord·GitHub 토픽, Awesome MCP Servers와 cc-sdd 등 오픈소스, 학습 채널과 단계별 Kiro 마스터 로드맵 정리

빠른 참조 가이드

#File·#Folder·#Problems 등 컨텍스트 참조, Steering·Hook·MCP 설정 스니펫, Kiro CLI v1.28 명령어와 단축키·트러블슈팅을 한눈에 모은 치트시트

Cmd. /hooks

Codex 명령어 마스터 · Codex lifecycle hooks를 검토하고 신뢰/비활성화 상태를 관리하는 명령

Ch9. Agentic 개발 체계

엔터프라이즈 프로젝트 설계 · Claude Code 중심 CLAUDE.md 설계, 멀티세션, 서브에이전트, Hooks 자동화

Ch11. Schedules, State, Hooks

엔터프라이즈 Eve 에이전트 개발 · Eve의 cron schedule, durable state, stream event hook을 운영 자동화와 감사 체계로 연결한다.

On this page

이벤트 종류Hook 액션 타입askAgent 타입runCommand 타입Hook 설정 위치프로젝트 레벨글로벌 레벨파일 패턴 매칭실전 레시피1. TypeScript 파일 저장 시 자동 린트2. 테스트 파일 생성 시 자동 실행3. 프롬프트 제출 후 자동 포매팅4. 에이전트 완료 후 Git 커밋 준비5. 컴포넌트 파일 생성 시 스토리북 파일 생성6. 수동 트리거 - 전체 프로젝트 검토Hook 관리 명령어VS Code 명령 팔레트에서Hook UI 패널Task Hooks (v0.10+)Pre Task ExecutionPost Task ExecutionTool Invocation Hooks (v0.9+)Pre Tool UsePost Tool Use주의사항참고 문서