⚡
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 작업 차단될 수 있음
- •⚠️ 외부 명령 실행 — 보안 고려 필요
- •⚠️ 너무 많은 훅 → 작업 속도 저하