当サイトの一部ページには、アフィリエイト・アドセンス・アソシエイト・プロモーション広告を掲載しています。

Amazonのアソシエイトとして、Security Akademeiaは適格販売により収入を得ています。

広告配信等の詳細については、プライバシーポリシーページに掲載しています。

消費者庁が、2023年10月1日から施行する景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています。もし問題の表現がありましたら、問い合わせページよりご連絡ください。

参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

Claude Codeでタスク終了時に通知音と通知バナーを出す方法【Mac編】

Windowsユーザーは別の記事を参照

本記事はMacユーザー向けです。

Windowsユーザー向けの記事は以下にあります。

通知音と通知バナーの設定

ここでは"marisa_owattaze.wav"ファイル(魔理沙の音声ファイル)を"/Users/ipusiron/custom/marisa_owattaze.wav"に配置したものとします。

ターミナルで以下のコマンドを実行して、挙動を確認してください。

  • afplay /Users/ipusiron/custom/marisa_owattaze.wav
    • →音声ファイルが鳴ればOK
  • osascript -e 'display notification “Claude Code completed tasks." with title “Claude Code"'
    • →通知バナーが出ればOK

以下の設定ファイルはプロジェクトフォルダー配下の".claude"フォルダー内にある、設定ファイル"settings.local.json"ファイルに通知音(aplayコマンドの2行)と通知バナー(osascriptコマンドの2行)の設定を追加します。

※osascriptコマンドの「"」をエスケープした形で設定ファイルに記すことに注意してください。

{
  "permissions": {
    "allow": [
      "Bash(grep:*)",
      "Bash(sed:*)",
      "Bash(python3:*)",
      "Bash(npm install:*)"
    ],
    "deny": [],
    "ask": []
  },
  "hooks": {
    "PreToolUse": [],
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "afplay /Users/ipusiron/custom/marisa_owattaze.wav"
          },
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude Code is waiting for you.\" with title \"Claude Code\"'"
          }
        ]
      }
    ],
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "afplay /Users/ipusiron/custom/marisa_owattaze.wav"
          },
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude Code completed tasks.\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

osascriptコマンド実行時に通知バナーが出ない場合の対処法

osascriptコマンド実行時にエラーが出ていないにもかかわらず通知バナーが表示されない場合は、権限が許可されていない可能性があります。

osascriptコマンドが送る通知は、OSから見るとスクリプトエディタからの通知扱いになります。つまり、スクリプエディターの通知が許可されていないと何も表示されないというわけです。

1:スクリプトエディタを起動します。

2:新規スクリプトを開き、以下を入力してから、メニューの再生アイコンを押して実行します。

display notification "Hello" with title "Script Editor"

すると、以下の通知バナーが出ます。

これを押すと、設定画面が開きます。

3:スクリプトエディタの設定にて、「通知を許可」をONにします。

4:もう一度ターミナルから以下のコマンドを実行してみます。

osascript -e 'display notification "Claude Code completed tasks." with title "Claude Code"'

通知バナーが出るはずです。これで成功です。

AI,MacClaude CodeAI,Mac

Posted by ipusiron