[[Claude Code]] の処理完了時や許可リクエスト時に音を鳴らすフックをユーザースコープの `settings.json` に作成しておくと便利である。他の作業中や離席中でも処理が完了したことが分かるし、許可待ちで放置してしまうのを防ぐことができる。
**`~/.claude/settings.json`:**
```json
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "afplay /System/Library/Sounds/Funk.aiff"
}
]
}
],
"PermissionRequest": [
{
"hooks": [
{
"type": "command",
"command": "afplay /System/Library/Sounds/Glass.aiff"
}
]
}
]
}
}
```
`Stop` は処理が完了したときに発火し、`PermissionRequest` はユーザーに許可をもとめるときに発火するフックである。
> [!note]
> macOS の標準サウンドは、 `ls /System/Library/Sounds/` で一覧を確認できる。`afplay /System/Library/Sounds/xxx.aiff` で音を鳴らすことができる。
> [!tip]
> 自分のお気に入りの音声ファイルを使いたい場合は、`afplay /path/to/your-favorite-sound.mp3` のようにパスを指定すれば OK。
## 関連ノート
- **[前提]** [[CLAUDE.md の読み込みルール]]: 本ノートの Hooks も `settings.json` に書くため、読み込みの仕組みを押さえておく必要がある
- **[応用]** [[Claude Code に rm ではなく trash を使わせる]]: 本ノートの Hooks 設定と同じ `settings.json` の別応用
- **[派生]** [[Claude Code のステータスラインをカスタマイズする]]: 本ノートの通知 Hooks と並ぶ、Claude Code の UI / 通知カスタマイズ系トピック
- **[派生]** [[iPhone から Claude Code を遠隔操作する]]: 通知 Hooks と並ぶ、Claude Code の使用体験を整える工夫