Claude Code の待機と完了を通知する:Hooks を安全に試す
長いコーディング作業中にターミナルを離れると、Agent が許可待ちのまま止まっていることがあります。Claude Code の Hooks は、特定イベントに応じてコマンドを実行する仕組みで、デスクトップ通知を組み合わせられます。イベントや入力形式は変更される可能性があるため、古い記事の JSON をそのまま貼らず、現在の公式ドキュメントを参照してください。
通知したいイベントを選ぶ
まず必要なのが「作業完了」なのか「入力や許可を待っている状態」なのかを分けます。Claude Code の Hooks リファレンスで、そのバージョンが提供するイベントと発火条件を確認します。イベントの意味が曖昧なまま設定すると、通知が多すぎたり重要な停止を見逃したりします。
小さなローカルコマンドを作る
macOS、Windows、Linux では通知コマンドが異なります。まず Claude Code と無関係に、ターミナルからテスト通知を一度出します。メッセージには作業名など必要最小限の情報だけを含め、プロンプト全文やファイル内容、秘密情報を通知に渡さないようにします。
Hook 設定を検証する
公式の設定例に沿ってプロジェクト設定またはユーザー設定へ追加し、テスト用リポジトリで実際のイベントを発生させます。ログを確認し、成功時・許可待ち・キャンセル時に意図した回数だけ通知されるか調べます。実行ファイルのパス、権限、シェル差異で失敗することがあるため、まず一つのイベントに限定してください。
通知の安全性と集中を守る
Hooks はローカルコマンドを起動するため、出所が分からない設定をコピーしてはいけません。スクリプトの内容を確認し、不要になった設定は削除します。通知をロック画面に表示する場合は、端末を共有する人に作業内容が見えないかも考慮します。
制限
Hook は Agent の安全確認を代替せず、許可待ちを自動承認する仕組みでもありません。Claude Code のイベント仕様は変わり得ます。公式リファレンスとバージョン履歴を確認し、実際に使う OS 上でテストしてください。