Claude Codeの作業完了、見逃していませんか?
Claude CodeのHooksとは?
Claude Codeで通知音を設定する方法
基本:効果音を鳴らす
afplayコマンドについて
利用可能なシステムサウンド
macOSの通知バナーも表示するには?
並列作業の切り札:音声でプロジェクト名を読み上げる
読み上げ音声を変える
利用可能な日本語音声を確認
音声を指定して読み上げ
設定のポイント
完了と質問で音を変える
Notificationのmatcherについて
既存のsettings.jsonとの統合
まとめ
コピペで設定完了:Claude Code用セットアッププロンプト
効果音のみ(シンプル版)
効果音+プロジェクト名読み上げ(おすすめ)
https://s3.ap-northeast-1.amazonaws.com/hanzochang.com/_v2/1770700583435_vn59k4qd8b.png

[並列作業] ClaudeCodeの進捗を「音+案件名」で通知!プロンプト付き!

Claude Codeを複数プロジェクトで並列に走らせていると、どこが終わったか見失いがち。Hooksとsayコマンドで「効果音+案件名の読み上げ」を設定すれば、画面を見なくても進捗が分かります。コピペで設定できるプロンプト付き。

公開日2026.02.09

更新日2026.02.09

AI

Claude Codeの作業完了、見逃していませんか?

Claude Codeにリファクタリングを依頼して、ブラウザで別の調べ物をしていたら、気づいたときには数分前に終わっていた。あるいは、Claude Codeが質問を投げて入力待ちなのに気づかず放置してしまった。

複数のターミナルでClaude Codeを並列に走らせている場合はなおさらです。 フロントエンドの修正、API側のリファクタ、テストの追加──それぞれ別のセッションで同時に進めていると、どのプロジェクトが終わったのか、どこで質問が来ているのか、把握しきれなくなります。

この記事では、~/.claude/settings.jsonのHooks機能を使って、タスク完了時と質問待ち時にmacOSで音を鳴らす方法を紹介します。さらにsayコマンドを組み合わせれば、「my-app 完了」のようにプロジェクト名を音声で読み上げてくれるので、画面を見なくてもどのプロジェクトで何が起きたか把握できます。設定だけで済むため、コードを書く必要はありません。

⚡ 今すぐ設定したい方へ

Claude Codeにコピペするだけで設定が完了するプロンプトを用意しました。 → セットアッププロンプトへジャンプ

Claude CodeのHooksとは?

Claude Codeには、特定のイベント発生時にシェルコマンドを自動実行する「Hooks」という機能があります。~/.claude/settings.jsonに設定を記述することで、以下のようなタイミングでコマンドを実行できます。

  • Stop - Claude Codeがタスクを完了して停止したとき
  • Notification - Claude Codeがユーザーへの通知を発行したとき(質問や確認待ち)

この仕組みを使って、macOSのシステムサウンドを再生します。

Claude Codeで通知音を設定する方法

基本:効果音を鳴らす

~/.claude/settings.jsonに以下を追記します。

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "afplay /System/Library/Sounds/Hero.aiff"
          }
        ]
      }
    ],
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "afplay /System/Library/Sounds/Glass.aiff"
          }
        ]
      }
    ]
  }
}

この設定により、タスク完了時には「Hero」、質問・確認待ち時には「Glass」というサウンドが再生されます。音が異なるため、画面を見なくてもどちらの状態か判別できます。

afplayコマンドについて

afplayはmacOSに標準で搭載されているオーディオ再生コマンドです。追加のインストールは不要で、.aiff.mp3などのファイルを再生できます。

利用可能なシステムサウンド

/System/Library/Sounds/ディレクトリには以下のサウンドファイルが用意されています。

サウンド名印象
Basso
低い警告音
Blow
風のような音
Bottle
ボトルを吹く音
Frog
カエルの鳴き声
Funk
ファンキーな効果音
Glass
ガラスを叩く音
Hero
達成感のある音
Morse
モールス信号風
Ping
軽い通知音
Pop
ポップ音
Purr
振動のような音
Sosumi
短い電子音
Submarine
潜水艦のソナー風
Tink
小さな金属音

ターミナルで実際に鳴らして試すことができます。

afplay /System/Library/Sounds/Hero.aiff

好みの組み合わせを見つけて設定に反映してください。

macOSの通知バナーも表示するには?

音だけでなくmacOSの通知バナーも表示したい場合は、osascriptコマンドを使います。

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"タスクが完了しました\" with title \"Claude Code\" sound name \"Hero\"'"
          }
        ]
      }
    ],
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"入力を待っています\" with title \"Claude Code\" sound name \"Glass\"'"
          }
        ]
      }
    ]
  }
}

osascriptを使うと、通知バナーの表示とサウンドの再生を1つのコマンドで実行できます。通知センターにも履歴が残るため、離席中に何が起きたかを後から確認するのにも便利です。

💡 osascriptの通知にはターミナルアプリの通知許可が必要

osascriptの通知は、実行元のターミナルアプリを通じて表示されます。初回実行時に通知が出ない場合は、「システム設定 > 通知」で自分が使っているターミナルアプリの通知を許可してください。

  • Terminal.app を使っている場合 → 「ターミナル」を許可
  • iTerm2 を使っている場合 → 「iTerm2」を許可
  • Warp を使っている場合 → 「Warp」を許可
  • Ghostty を使っている場合 → 「Ghostty」を許可

並列作業の切り札:音声でプロジェクト名を読み上げる

Claude Codeを複数ターミナルで並列に動かす運用は生産性が高い反面、「どのプロジェクトが終わったのか」が効果音だけでは分かりません。

macOSのsayコマンドを組み合わせると、作業ディレクトリのフォルダ名を音声で読み上げてくれます。

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "afplay /System/Library/Sounds/Hero.aiff && say \"$(basename \"$PWD\") 完了\""
          }
        ]
      }
    ],
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "afplay /System/Library/Sounds/Glass.aiff && say \"$(basename \"$PWD\") 質問があります\""
          }
        ]
      }
    ]
  }
}

例えばmy-appディレクトリで作業していた場合、タスク完了時に「my-app 完了」、質問待ち時に「my-app 質問があります」と読み上げられます。イヤホンをしていれば、画面を一切見ずにどのプロジェクトで何が起きたか把握できます。

読み上げ音声を変える

sayコマンドは-vオプションで音声を変更できます。日本語の読み上げにはKyokoOtoyaが使えます。

# 利用可能な日本語音声を確認
say -v '?' | grep ja_JP

# 音声を指定して読み上げ
say -v Kyoko "my-app 完了"

Hooksに適用する場合は、コマンド部分を以下のように変更します。

afplay /System/Library/Sounds/Hero.aiff && say -v Kyoko \"$(basename \"$PWD\") 完了\"

設定のポイント

完了と質問で音を変える

同じ音にしてしまうと、画面を見るまでどちらの状態か分かりません。タスク完了には達成感のある「Hero」、質問待ちには控えめな「Glass」のように、意味の異なるサウンドを割り当てると便利です。

Notificationのmatcherについて

Notificationmatcherフィールドは、通知メッセージのフィルタリングに使います。空文字列""を指定するとすべての通知にマッチします。特定のメッセージだけに反応させたい場合は、正規表現パターンを指定できます。

既存のsettings.jsonとの統合

settings.jsonに既に他の設定がある場合は、hooksキーを追加する形で記述します。既存の設定を上書きしないよう注意してください。

まとめ

Claude CodeのHooks機能を使えば、設定ファイルの記述だけでタスク完了や質問待ちの音声通知を実現できます。

設定のポイントは以下の通りです。

  • ~/.claude/settings.jsonhooksStopNotificationのイベントを設定する
  • afplayコマンドでmacOSのシステムサウンドを再生する
  • 完了と質問で異なるサウンドを割り当てると、画面を見なくても状態を判別できる
  • osascriptを使えば通知バナーとサウンドを同時に表示できる
  • sayコマンドでプロジェクト名を読み上げれば、複数セッション並行時もどこで何が起きたか判別できる

小さな設定ですが、マルチタスクで開発しているときの待ち時間を減らす効果があります。

コピペで設定完了:Claude Code用セットアッププロンプト

手動でsettings.jsonを編集するのが面倒な場合、以下のプロンプトをClaude Codeにそのまま貼り付ければ自動で設定してくれます。

効果音のみ(シンプル版)

~/.claude/settings.json にhooksを追加して。
Stop(タスク完了)で afplay /System/Library/Sounds/Hero.aiff、
Notification(入力待ち)で afplay /System/Library/Sounds/Glass.aiff を鳴らすようにして。
既存設定はそのまま残して。

効果音+プロジェクト名読み上げ(おすすめ)

Claude Codeの通知音を設定して。以下の通りに実装してほしい。

■ ~/.claude/settings.json のhooksに以下を設定

Stop(タスク完了)のcommand:
(afplay /System/Library/Sounds/Hero.aiff && say "$(basename "$PWD") 完了") > /dev/null 2>&1 &

Notification(matcher空文字)のcommand:
(afplay /System/Library/Sounds/Glass.aiff && say "$(basename "$PWD") 質問があります") > /dev/null 2>&1 &

hookをブロックしないよう、必ず > /dev/null 2>&1 & でバックグラウンド実行すること。
既存のsettings.jsonの設定はそのまま残してhooksだけ追加・更新して。

Claude Codeがsettings.jsonを読み取って、既存の設定を壊さずにhooksをマージしてくれます。

参考リンク

picture
hanzochang - 半澤勇大
慶應義塾大学卒業後、Webプランナーとして勤務。 ナショナルクライアントのキャンペーンサイトの企画・演出を担当。 その後開発会社に創業メンバーとして参加。 Fintech案件や大手企業のDXプロジェクトに関わり、その後個人事業主として独立し、 2023年にWeb3に特化した開発会社として法人化しました。 現在はWeb3アプリ開発を中心にAI開発フローの整備を行っています。
また、趣味で2017年ごろより匿名アカウントでCryptoの調査等を行い、 ブロックチェーンメディアやSNSでビットコイン論文等の図解等を発信していました。
X (Twitter)

お問い合わせはこちらから

内容によっては返信ができない場合や、お時間をいただく場合がございます。あらかじめご了承ください。