Claude Code 사용 시 응답 완료 및 권한 요청 시점에 알림음을 재생
noti_claude_ex.mp4
play_sound.py: macOS의afplay명령어를 사용하여 알림음을 재생하는 스크립트ring.mp3: 재생할 알림음 파일- 다른 알림음을 설정하고 싶다면
ring1.mov,ring2.mp3가 있으며, 직접 음성파일을 준비해서 변경 가능 (play_sound.py파일에서 파일명 수정 필요)
git clone https://github.com/blossun/noti-claude.git
cd noti-claudeuv syncuv run play_sound.pyClaude Code에서 이 알림 시스템을 사용하려면 settings.json 파일에 훅(Hook)을 설정해야 합니다.
다음 중 하나의 위치에 설정 파일을 생성/수정하세요:
| 설정 범위 | 파일 위치 | 적용 대상 |
|---|---|---|
| 전역 설정 | ~/.claude/settings.json |
모든 Claude Code 세션 |
| 프로젝트별 설정 | 프로젝트_루트/.claude/settings.json |
해당 프로젝트만 |
선택한 설정 파일에 다음 JSON을 추가하세요:
hooks 파일을 복사한 후, 파일 내의 path/to/noti-claude 부분을 실제 프로젝트 경로로 수정해야 합니다.
{
"hooks": {
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "uv run path/to/noti-claude/play_sound.py"
}
]
}
],
"PermissionRequest": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "uv run path/to/noti-claude/play_sound.py"
}
]
}
]
}
}Stop: Claude Code가 응답을 완료했을 때 실행PermissionRequest: 권한 확인이나 사용자 입력이 필요할 때 실행
다른 유용한 훅 이벤트들도 사용할 수 있습니다:
Stop: 응답 완료 시PermissionRequest: 권한 요청 시SessionStart: 세션 시작 시SessionEnd: 세션 종료 시UserPromptSubmit: 사용자 입력 제출 시Notification: 알림 발생 시
각 이벤트에 동일한 형식의 훅을 추가할 수 있습니다.
- 절대 경로 사용: 설정에서는
play_sound.py의 절대 경로를 사용하세요 - 틸드(~) 확장:
~/path/to/file형식도 지원됩니다 - uv 사용:
uv run명령어를 사용하여 올바른 Python 환경에서 실행되도록 하세요
- 파일 경로가 올바른지 확인
uv가 설치되어 있는지 확인- macOS에서
afplay명령어 사용 가능 여부 확인 - 음량 설정 확인
- JSON 문법이 올바른지 확인
- Claude Code 재시작
- 설정 파일 권한 확인
편리한 훅 관리를 위해 hooks 명령어를 제공합니다.
전역에서 hooks 명령어를 사용할 수 있도록 설정:
hooks 파일을 복사한 후, 파일 내의 path/to/noti-claude 부분을 실제 프로젝트 경로로 수정해야 합니다.
# 1. bin 디렉토리 만들기
mkdir -p ~/bin
# 2. hooks 파일 복사
cp hooks ~/bin/hooks
# 3. hooks 파일의 경로 수정
# 텍스트 에디터로 ~/bin/hooks 파일을 열어서
# 'path/to/noti-claude'를 실제 프로젝트 경로로 변경하세요
# 예: path/to/noti-claude → ~/solar/project/noti-claude
# 4. PATH에 추가 (한 번만 설정)
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshrc
# bash 사용자는: echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
# 5. 현재 터미널에서 즉시 적용
source ~/.zshrc설정 후 어디서든 다음 명령어로 알림음을 제어할 수 있습니다:
# 알림음 켜기
hooks on
# 알림음 끄기
hooks off
# 사용법 보기
hookshooks on:~/.claude/settings.json에서 주석 처리된 명령어를 활성화hooks off:~/.claude/settings.json에서 명령어를 주석 처리하여 비활성화- 기존 설정은 그대로 유지되며 command 부분만 토글됩니다
$ hooks off
🔇 Hooks 비활성화됨
$ hooks on
🔊 Hooks 활성화됨
$ hooks
Usage: hooks [on|off]
hooks on - Claude 알림음 활성화
hooks off - Claude 알림음 비활성화- macOS (afplay 명령어 사용)
- Python 3.8+
- uv (Python 패키지 관리자)
이 프로젝트는 개인 사용을 위한 것입니다.