claude-code-notifier
使い方 ガイド よくある質問
◐日本語
English العربية Deutsch Español Français עברית Italiano 日本語 한국어 Nederlands Polski Português (Brasil) Русский Türkçe Tiếng Việt 简体中文 繁體中文
はじめる
すべてのガイド

macOS での Claude Code 通知

更新日: 2026年10月31日 · 6 分で読めます
このページの内容 01Claude Code 標準の通知動作 02osascript を使った通知 hook 03Claude の完了をすぐに知る 04実際のメッセージを表示する 05terminal-notifier:クリックでターミナルに戻る 06集中モードとおやすみモード 07Claude Code Notifier の位置づけ 08よくある質問

macOS では、Ghostty、Kitty、iTerm2 なら Claude Code が標準でデスクトップ通知を送ります(iTerm2 はアラート設定の有効化が必要)。しかし Apple Terminal やその他の多くのターミナルでは何も表示されません。どのターミナルでも通知を受け取るには、~/.claude/settings.json に osascript -e 'display notification ...' を実行する Notification hook を追加します。Claude が終わった瞬間も知りたい場合は Stop hook も追加してください。また、システム設定でスクリプトエディタの通知を許可しておかないと、osascript コマンドは何のエラーも出さずに失敗します。

01Claude Code 標準の通知動作

Claude Code は、タスクを終えたときや権限の承認を待っているときに、ユーザーがターミナルを離れているようであれば通知イベントを発生させます。Anthropic のターミナルガイドによると、表示内容はターミナルによって異なります。

ターミナルデフォルトの動作
Ghostty、KittymacOS の通知
iTerm2macOS の通知(アラート設定を有効にした場合)
Apple Terminal音は鳴りません。プロファイルの設定次第で、無音のベル(ウィンドウの点滅や Dock アイコンのバウンス)が表示される程度です
その他(VS Code のターミナル、Warp など)何も表示されない

iTerm2 では、Settings > Profiles > Terminal を開いて Notification Center Alerts にチェックを入れ、Filter Alerts をクリックして Send escape sequence-generated alerts をオンにします。あわせて システム設定 > 通知 で iTerm2 の通知が許可されているかも確認してください。

Apple Terminal では、少なくとも音を鳴らすことはできます。~/.claude/settings.json に "preferredNotifChannel": "terminal_bell" を設定し、設定 > プロファイル > 詳細 で オーディオベル をオンにします。詳しくはターミナルベルのガイドを参照してください。

組み込みのアラートには制約があります。Claude Code がユーザーが離席中だと判断したときにしか発火せず、何かが起きたことしか伝えず、通知がそのコンピュータの外に届くこともありません。

02osascript を使った通知 hook

hook なら IDE のターミナルを含め、どのターミナルでも動作します。以下は Anthropic の hooks ガイドにある macOS 向けの例です。既存のキーは残したまま、~/.claude/settings.json に追加してください。

{
  "hooks": {
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

Claude Code で /hooks と入力し、Notification の下に表示されていることを確認します。

スクリプトエディタの通知許可

osascript はスクリプトエディタとして通知を送ります。スクリプトエディタに通知の権限がないと、コマンドは何も言わずに失敗し、macOS も許可を求めてきません。まずターミナルで次のコマンドを一度実行してください。

osascript -e 'display notification "test"'

初回は何も表示されません。システム設定 > 通知 を開き、スクリプトエディタ を探して 通知を許可 をオンにします。もう一度コマンドを実行すると、テスト通知が表示されるはずです。

発火タイミング

matcher を空にすると、すべての通知タイプで発火します。特に重要なのは permission_prompt(Claude が承認を約6秒待っていて、ユーザーが何も入力していない)と idle_prompt(Claude が約60秒前に処理を終え、それ以降入力がない)の2つです。すべてのタイプと発火タイミングは Notification hook ガイドにまとめています。

03Claude の完了をすぐに知る

idle_prompt は1分待ってから発火します。すぐに知りたい場合は、Claude がターンを終えたときに実行される Stop hook を追加しましょう。Stop には matcher は不要です。

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude has finished\" with title \"Claude Code\" sound name \"Glass\"'"
          }
        ]
      }
    ]
  }
}

sound name には /System/Library/Sounds 内の任意のサウンド(Glass、Ping、Hero など)を指定できます。音だけで十分なら、コマンドに afplay /System/Library/Sounds/Glass.aiff を使うこともできます。このイベントの詳細は Stop hook ガイドを参照してください。

04実際のメッセージを表示する

hook は標準入力で JSON を受け取ります。Notification の入力には「Claude needs your permission」のような message フィールドが含まれます。小さなスクリプトを使えば、このテキストを通知に表示できます。次の内容を ~/.claude/hooks/notify-mac.sh として保存してください。

#!/bin/bash
msg=$(jq -r '.message // "Claude Code needs your attention"')
osascript -e 'on run argv' \
  -e 'display notification (item 1 of argv) with title "Claude Code"' \
  -e 'end run' "$msg"

テキストを AppleScript の文字列に埋め込まず引数として渡しているので、メッセージに引用符が含まれていてもコマンドが壊れません。chmod +x ~/.claude/hooks/notify-mac.sh で実行権限を付与し、hook のコマンドを ~/.claude/hooks/notify-mac.sh に設定します。このスクリプトには jq が必要です(jq --version が失敗する場合は brew install jq でインストールしてください)。

05terminal-notifier:クリックでターミナルに戻る

osascript の通知はクリックするとスクリプトエディタが開いてしまい、目的の場所には戻れません。terminal-notifier を使えば、前面に出すアプリを指定できます。

brew install terminal-notifier
terminal-notifier -title "Claude Code" -message "Claude has finished" -sound default -activate com.googlecode.iterm2

Apple Terminal なら com.apple.Terminal、エディタならその bundle ID を指定します。同じコマンドを hook の command フィールドに設定してください。初回はシステム設定で terminal-notifier の通知を許可する必要があります。

06集中モードとおやすみモード

これらはすべて通常の macOS 通知なので、集中モードによって非表示になることがあります。特定の時間帯に通知が届かない場合は、システム設定 > 集中モード を確認し、通知を送るアプリ(スクリプトエディタ、terminal-notifier、またはお使いのターミナル)を許可してください。自分で決めた時間帯に合わせて通知を制御したい場合は、quiet hours とおやすみモードを参照してください。

07Claude Code Notifier の位置づけ

Mac の前に座っていて、ちょっとした合図が欲しいだけなら、上記の hook で十分です。しかし席を離れると物足りなくなります。Mac の通知はキッチンにいるあなたには届きませんし、Claude に返答することもできないからです。

Claude Code Notifier は、同じ hook を基盤にした独立したツールです(Anthropic ではなく TouchTap が開発)。無料のコマンドラインツール ccn は Mac、Windows、Linux で動作します。Mac には次のコマンドでインストールできます。

curl -fsSL https://claudecodenotifier.com/install.sh | sh

Homebrew の場合は brew trust --formula touch-tap/tap/ccn && brew install touch-tap/tap/ccn です。~/.claude/settings.json に自身の hook エントリを追加し、ファイルの他の部分には手を加えず、バックアップも残します。以降は Claude が処理を終えたとき、権限を求めたとき、質問したときに macOS の通知を表示します。ネットワークやスマートフォンは不要です。

iPhone や Android のスマートフォンをペアリングすると、同じイベントが push 通知で届き、スマートフォンから権限の許可・拒否、Claude の質問への回答の選択、次の指示の送信ができます。直近30秒以内にターミナルで入力していた場合は、通常どおりターミナルで確認が行われ、スマートフォン側では待機しません。詳しくはスマートフォンのペアリングとccn のページをご覧ください。スマートフォンアプリの利用にはサブスクリプションまたは買い切りの購入が必要です。料金をご確認ください。

ccn を導入する場合は、自作の osascript hook を削除してください。残したままだと、イベントごとに通知が2つ表示されます。また、旧版の Mac メニューバーアプリもありますが、同じ Mac で ccn と併用しないでください。

08よくある質問

osascript の hook で何も表示されないのはなぜですか?

多くの場合、スクリプトエディタに通知の許可がないため、macOS がエラーを出さずに通知を破棄しています。一度 osascript -e 'display notification "test"' を実行してから、システム設定 > 通知 でスクリプトエディタを許可してください。それでも表示されない場合は、集中モードが有効になっていないか、/hooks に hook が表示されているかを確認してください。

Claude Code は設定なしで macOS の通知を送りますか?

はい。Ghostty と Kitty では送られます。iTerm2 でも通知センターへのアラートを有効にすれば送られます。Apple のターミナルや IDE の terminal ではデフォルトでデスクトップ通知が出ないため、hook か ccn を使ってください。

Claude が終わった 1 分後ではなく、すぐに通知を受け取るには?

Stop hook を使ってください。idle_prompt 通知は Claude の完了から約 60 秒後、しかもその間に入力がなかった場合にのみ発火しますが、Stop は毎ターンの終わりに実行されます。

バナーの代わりに音で知らせることはできますか?

はい。hook のコマンドに afplay /System/Library/Sounds/Glass.aiff を使うか、osascript のコマンドに sound name "Glass" を追加すれば両方を得られます。

macOS の通知から権限を承認できますか?

osascript や terminal-notifier ではできません。これらはテキストを表示するだけです。hook から権限リクエストに応答するには PermissionRequest イベントが必要です。hook から権限リクエストに応答する方法を参照するか、Claude Code Notifier でスマートフォンから承認してください。

Claude Code Notifier Claude Code の処理完了や入力待ちをスマートフォンへの push で受け取り、そのまま承認・拒否・回答できます。ccn コマンドラインツールは Mac、Windows、Linux で無料で使えます。
iOS 版をダウンロード Android 版をダウンロード ccn をインストール

関連ガイド

  • Claude Code の Notification hook:発火するタイミングと使い方Claude Code の Notification hook がいつ発火するのか、permission_prompt と idle_prompt の意味、受け取る入力、そして発火前に待機する理由を解説します。
  • Claude Code の Stop hook:Claude の完了時に処理を実行するClaude Code の Stop hook の仕組み、受け取る入力、Claude の完了時にコマンドを実行する方法、そして Claude に安全に作業を続けさせる方法を解説します。
  • Claude Code の組み込み通知:terminal bell と preferredNotifChannelClaude Code の組み込みアラートの仕組み、preferredNotifChannel の各値の動作、そして iTerm2、Apple Terminal、Kitty、Ghostty、tmux の設定方法を解説します。
  • Claude Code の通知が届かないときのチェックリストhook が発火しない、Claude Code の完了時に通知が来ない、といった場合は、/hooks やデバッグログから ccn doctor、ccn test まで、このチェックリストを順に確認してください。
claude-code-notifier

Claude Code Notifier は独立したサードパーティ製アプリケーションです。Anthropic, PBC との提携関係はなく、同社による承認や後援も受けていません。「Claude」および「Claude Code」は Anthropic, PBC の商標です。

アプリ iOS アプリ Android アプリ macOS・Windows・Linux 用 ccn すべてのガイド
法的情報 プライバシーポリシー 利用規約 その他の言語 © 2026 touchtap. 無断複写・転載を禁じます。 TouchTap Ltd はイングランド・ウェールズで登記されています(会社番号 13942589)。