TL;DR
- Claude Code가 긴 작업 중 사용자 입력이 필요할 때 시스템 알림을 받을 수 있다
- Stop 훅: 응답 완료 시 요약 알림
- Notification 훅: 권한 승인, 질문 등 사용자 액션 필요 시 즉시 알림
- macOS, Windows, Linux 크로스플랫폼 지원
- 하이브리드 아키텍처로 공통 로직 재사용, 훅별 독립적 동작
왜 이 플러그인이 필요했나?
Claude Code로 작업하다 보면 이런 상황이 자주 발생한다.
- 복잡한 리팩토링을 요청하고 다른 일을 하러 간다.
- Claude가 열심히 작업 중…
- 중간에 “이 파일을 수정해도 될까요?” 같은 권한 승인이 필요하다.
- 사용자는 모른 채 Claude는 멈춰있다.
- 30분 후 돌아와서야 작업이 진행되지 않았음을 발견
이 문제를 해결하려면 Claude가 사용자 입력을 기다릴 때 알림을 보내야 한다.
스킬? 훅? 어떤 걸로 만들어야 하나
Claude Code 확장 방식에는 크게 두 가지가 있다.
| 구분 | 스킬(Skill) | 훅(Hook) |
|---|---|---|
| 호출 방식 | 사용자가 명시적으로 호출 (/skill-name) |
이벤트에 자동 반응 |
| 용도 | 복잡한 워크플로우, 전문 지식 | 도구 실행 전/후 자동 동작 |
| 적합한 경우 | 사용자 주도 작업 | 시스템 이벤트 반응 |
“사용자 입력이 필요할 때 알림”은 자동으로 발생해야 하므로 훅(Hook)이 정답이다.
Claude Code는 Notification 이벤트를 제공하는데, 이 이벤트는
- 권한 승인이 필요할 때
- 사용자에게 질문할 때
- 기타 사용자 액션이 필요할 때
발생한다.
파일 구조
plugins/notify-summary/
├── .claude-plugin/
│ └── plugin.json # 메타데이터
├── hooks/
│ └── hooks.json # Stop + Notification 훅 정의
├── scripts/
│ ├── notify_core.py # 공통: 플랫폼별 알림, Haiku 요약
│ ├── notify_stop.py # Stop 훅: 응답 완료 시 요약 알림
│ └── notify_input.py # Notification 훅: 입력 필요 시 알림
└── README.md
사용 시나리오
시나리오 1: 작업 완료 알림
- 사용자: “이 프로젝트 전체 테스트 실행하고 실패하는 거 고쳐줘”
- Claude가 열심히 작업 (5분 소요)
- 작업 완료
- 알림: “모든 테스트 통과, 3개 파일 수정됨”
시나리오 2: 입력 필요 알림 (신규 기능)
- 사용자: “데이터베이스 스키마 마이그레이션 해줘”
- Claude가 작업 중…
- Claude: “프로덕션 DB에 접근해야 합니다. 승인하시겠습니까?”
- 알림 (Glass 사운드): “Claude Code – 권한 필요: 프로덕션 DB 접근 승인 요청”
- 사용자가 바로 확인하고 승인
- 작업 계속 진행
사운드 설정
알림 사운드를 환경변수로 제어할 수 있다. CLAUDE_PLUGIN_NOTIFY_SOUND 환경변수를 설정하면 된다.
| 값 | 동작 |
|---|---|
| (미설정) | 기본 동작 (Stop: default, Notification: Glass) |
off 또는 "" |
무음 (사운드 없음) |
| 사운드 이름 | 지정한 사운드 사용 (예: Ping, Glass) |
설정 예시
# 알림 사운드 끄기
export CLAUDE_PLUGIN_NOTIFY_SOUND=off
# 특정 사운드 사용
export CLAUDE_PLUGIN_NOTIFY_SOUND=Ping
# 기본 동작으로 복원
unset CLAUDE_PLUGIN_NOTIFY_SOUND
macOS 사운드 목록
macOS에서 사용 가능한 사운드: default, Basso, Blow, Bottle, Frog, Funk, Glass, Hero, Morse, Ping, Pop, Purr, Sosumi, Submarine, Tink
마치며
Claude Code를 백그라운드에서 돌려놓고 다른 일을 할 때, 언제 작업이 끝났는지, 중간에 뭔가 필요한 건 아닌지 확인하러 왔다갔다 하는 게 번거로웠다.
이 플러그인으로:
- 작업 끝나면 알림이 온다
- 중간에 뭔가 필요하면 바로 알림이 온다
- 더 이상 “혹시 끝났나?” 하고 확인할 필요가 없다
플러그인 저장소: greeun-claude-plugins