Claude CodeのHooksで完了通知をしたいなと調べると、
いろんな記事が無限に出てくる。。。
- afplayで音を鳴らしたり
- sayで読み上げたり
- terminal-notifierで通知したり
全部したいけど、いろいろ設定するのはめんどくさい。。。
ので、
1つのコマンドで全部できるCLIツールを作ってみた(*´ω`*)
つくったもの
使い方はこんな感じ
# デスクトップ通知+音声読み上げ npx ccnoti@latest --desktop --voice -m "完了しました" # デスクトップ通知のみ npx ccnoti@latest --desktop -m "入力を待っています" # 音声読み上げのみ npx ccnoti@latest --voice -m "Task Complete" # 効果音のみ+ファイル指定 npx ccnoti@latest --sound --soundFile=/System/Library/Sounds/Hero.aiff
とりあえず、macでは動いてるけど、win/linuxもちょっとは動くはず?
Claude Code Hooksの設定
.claude/settings.jsonにこんな設定をすればOK
メッセージを"ccnotiが完了しました"とかにすると、どのプロジェクトかわかりやすい
{ "hooks": { "Notification": [ { "matcher": "", "hooks": [ { "type": "command", "command": "npx ccnoti@latest -v -d -m 'ccnotiが入力を待っています'" } ] } ], "Stop": [ { "matcher": "", "hooks": [ { "type": "command", "command": "npx ccnoti@latest -v -d -m 'ccnotiが完了しました'" } ] } ] } }
利用したライブラリたち
- node-notifier: Desktop通知
- macでは内部でterminal-notifierを利用
- say: Text-to-speech
- macでは内部でsayコマンドを利用
- sound-play: 効果音再生
- macでは内部でafplayを利用
- citty: CLI framework
- c12: Configuration loader
- consola: Logging
- defu: Object merging
- pathe: Path utilities
- unbuild: Build tool
ぜひ遊んでみてください!!
ソースコードとかはこちら。とりあえず、ベースができたので、
slackとかにも送れるようにしたいなとかも。。
ぜひぜひ遊んでみてみてください〜(*´ω`*)
参考にしたサイト様
- Claude Codeでの作業完了通知方法まとめ
- Claude Codeのタスクが完了したらプッシュ通知して欲しい!
- Claude CodeのHooksでタスク完了メッセージをデスクトップ通知する
- Claude Code の notifications hook で作業内容を良い感じに slack に送信する
- Xユーザーのぬこぬこさん: 「Claude Code の hooks で Mac 標準の通知音を設定したい方は最初に下記を実行するのがオススメ for sound in /System/Library/Sounds/*.aiff; do name=$(basename "$sound" .aiff); echo "♪ $name"; afplay "$sound"; done 私は Funk に決めました! afplay /System/Library/Sounds/Funk.aiff https://t.co/xWdtoROR8t」 / X