IMPROVED

Hooks — 자동 실행 규칙

특정 이벤트가 발생하면 자동으로 실행할 명령을 설정합니다. 파일 저장 후 자동 포맷, 위험 명령 차단, 작업 완료 알림 등을 설정할 수 있어요.

Hooks는 Claude가 특정 작업을 수행할 때 자동으로 실행되는 쉘 명령어입니다. Claude의 모든 행동에 자동화 규칙을 추가할 수 있어요. 코드 포맷 자동화부터 위험한 명령 차단까지 다양하게 활용됩니다.

사용 가능한 훅 이벤트 종류

  • PreToolUse — 도구 실행 전 (차단 가능)
  • PostToolUse — 도구 실행 후
  • Notification — Claude가 알림을 보낼 때
  • SessionStart — 새 세션 시작 시
  • SessionEnd — 세션 종료 시
  • UserPromptSubmit — 메시지 제출 시
  • Stop — Claude가 작업을 멈출 때
settings.json 훅 설정 예시
// ~/.claude/settings.json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write",
        "hooks": [
          {
            "type": "command",
            "command": "prettier --write $CLAUDE_TOOL_INPUT_FILE_PATH"
          }
        ]
      }
    ],
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "bash ~/.claude/safety-check.sh"
          }
        ]
      }
    ],
    "Notification": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "curl -s -X POST https://api.telegram.org/bot토큰/sendMessage -d 'chat_id=내ID&text=Claude작업완료'"
          }
        ]
      }
    ]
  }
}

실제 활용 사례

  • 파일 수정 후 Prettier 자동 실행 — 코드 포맷 통일
  • rm -rf, DROP TABLE 등 위험 명령 실행 전 차단·경고
  • 작업 완료 시 슬랙·텔레그램·이메일 알림 전송
  • 세션 시작 시 DB 연결 확인, 환경 체크
  • 특정 파일 수정 시 자동 테스트 실행
  • 커밋 전 린트 검사 자동 실행

훅 종료 코드의 의미

종료 코드 0 → 성공, 계속 진행 종료 코드 1 → 실패 알림, 하지만 진행 종료 코드 2 → Claude에게 오류 내용 전달 PreToolUse 훅에서 exit 2를 반환하면 Claude가 해당 도구 실행을 취소합니다 — 위험 명령 차단에 활용!

안전 검사 스크립트 예시

# ~/.claude/safety-check.sh #!/bin/bash COMMAND="$CLAUDE_TOOL_INPUT_COMMAND" # 위험한 명령 차단 if echo "$COMMAND" | grep -q "rm -rf /"; then echo "위험: 루트 디렉토리 삭제 시도 차단됨" >&2 exit 2 # Claude에게 차단 알림 fi exit 0 # 안전, 계속 진행

장점과 주의사항

  • ✅ 실수 방지 자동화 — 위험 명령 차단
  • ✅ 팀 규칙 강제 적용 — 포맷, 린트 자동 실행
  • ✅ 원격 알림 — 장시간 작업 완료 시 알림
  • ⚠️ 훅 스크립트 오류 시 Claude 작업 차단될 수 있음
  • ⚠️ 외부 명령 실행 — 보안 고려 필요
  • ⚠️ 너무 많은 훅 → 작업 속도 저하