はじめに

Claude Codeはかなり自律的に動いてくれるので、作業終了時やこちらが操作できるまでは放置したい。そのために通知設定をしておく。

Hooks機能

Hooks機能を使用する。Hooks機能は特定の条件でコマンドを自動的に実行してくれる機能だ。設定すべきは、NotificationとStopの2種類。

Claude Codeのスラッシュコマンドから設定できる。

また、~/.claude/settings.jsonの設定ファイルに直接記載してもOK。下記のcommandのところに実行したいコマンドを記入する。

{
  "hooks": {
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"許可を求めます。\" with title \"Claude Code\" sound name \"Glass\"'"
          }
        ]
      }
    ],
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"作業が完了しました。\" with title \"Claude Code\" sound name \"Glass\"'"
          }
        ]
      }
    ]
  }
}

コマンドをどうするか

通知や音を出すようなコマンドなら何でもいい。Macの場合はosascriptという専用コマンドでできると記載があったので、これを利用した。注意点は初期設定ではターミナルで実行したosascriptの通知が許可されていないということ。スクリプトエディタというアプリで適当に通知のコードを作って

例:

display notification "テスト通知" with title "Claude Code" sound name "Glass"

みたいな通知コードをアプリで実行し、通知許可をしないといけない。

おわりに

Claude Codeが放置可能になり、更に便利になりました。