🔔

【Claude Code】WSL開発者必見!タスク完了を見逃さない通知設定4選

に公開

はじめまして。nemunekoです=^_^=

Claude Codeのhook機能を使って、タスク完了時にWindows側に通知を送る方法をいくつか試してみました。
WSL環境からWindows側への通知で実際に動いた方法をまとめておきます。

それではどうぞ。

この記事が役に立つ方

  • Claude Codeで処理完了の通知が欲しい方
  • WSL環境からWindows側に通知を送りたい方

事前準備

通知用のスクリプトファイル alarm.sh を作成します

touch alarm.sh
chmod +x alarm.sh

Claude Codeのhook設定で呼び出します

# .cluade/.settings.local.json
{
  "hooks": {
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "bash alarm.sh"
          }
        ]
      }
    ]
  }
}

それでは、各通知方法を見ていきましょう。

方法1: 音声通知(サウンド再生)

最もシンプルな通知方法です。Windowsのシステム音を再生します。

alarm.sh に以下の内容を記述します

#!/bin/bash
# 音声通知:Windowsのシステム音を再生
powershell.exe -c "(New-Object Media.SoundPlayer 'C:\\Windows\\Media\\tada.wav').PlaySync()"

「タダーン♪」という音が鳴れば成功です。
音源は好きに決めてよいので、適当に音源を見繕って指定してみてください。
私は「旧支配者のキャロル」を以前設定しました。ぜひ以下の記事をご覧ください=^_^=
Hookで通知音に「旧支配者のキャロル」を設定してみた

方法2: MessageBox(ポップアップダイアログ)

画面中央に表示される通知方法です。やってみましたが意外と気づかないかもです。

alarm.sh を以下の内容に変更します

#!/bin/bash
# MessageBox通知:画面中央にポップアップ表示
powershell.exe -Command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.MessageBox]::Show('タスクが完了しました。', 'Stop通知')"

方法3: バルーン通知(システムトレイ)

Windows標準の通知方法です。画面右下に表示され、デフォルトでは通知音も流れます。

alarm.sh を以下の内容に変更してください

#!/bin/bash
# バルーン通知:システムトレイに通知を表示
powershell.exe -Command "[reflection.assembly]::loadwithpartialname('System.Windows.Forms'); \$notify = new-object system.windows.forms.notifyicon; \$notify.icon = [System.Drawing.SystemIcons]::Information; \$notify.visible = \$true; \$notify.showballoontip(10,'Stop通知','タスクが完了しました',[system.windows.forms.tooltipicon]::Info)"

普段使いに最適なバランスの良い通知方法です。

補足:トースト通知(BurntToast)を使う場合

Windows 10/11のネイティブなトースト通知を使いたい場合は、BurntToastモジュールを使用します。

まず、管理者権限で起動したPowerShellにて、BurntToastモジュールをインストールします

Install-Module -Name BurntToast -Force

その後、alarm.shを以下の内容に変更します

#!/bin/bash
# トースト通知:Windows 10/11のネイティブ通知
powershell.exe -Command "New-BurntToastNotification -Text 'Stop通知', 'タスクが完了しました'"

お好みで選んでください。

方法4: AI音声読み上げ

Windows標準の音声合成でメッセージを読み上げる方法です。

alarm.sh を以下の内容に変更します

#!/bin/bash
# AI音声読み上げ:日本語でメッセージを読み上げ
powershell.exe -Command "
    Add-Type -AssemblyName System.Speech
    \$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer
    \$speak.SelectVoice('Microsoft Haruka Desktop')
    \$speak.Speak('タスクが完了しました')
"

好きな言葉を喋らせられるので、便利かも?

まとめ

WSLからWindows通知を送る4つの方法を紹介しました。

  1. 音声通知: シンプルで効果的、大体気づける
  2. MessageBox: 見逃す可能性あり
  3. バルーン通知: 普段使いに最適、通知と言えばこれ
  4. AI音声読み上げ: カスタムメッセージで状況を把握、もっと使い道がある気がする

状況に応じて使い分けることで、快適な開発環境を構築できます。
みなさんも、自分の作業スタイルに合った通知方法を見つけてみてくださいね=^ω^=

それでは、また次の記事で。nemunekoでした=^_^=

Discussion