AI活用

Claude Codeの通知を受け取る3つの方法|定期タスクではスマホに届かず、結果をメールで受け取る形にした【2026年】

編集責任者佐藤翔太株式会社UrakaTA 代表取締役記事はAIが社内の記録から下書きし、別のAIが公式情報で照合、公開後に編集責任者が確認しています。
ノートPCの画面でロボットが作業し、ベル付きの封筒が飛び出して手が受け取ろうとする横で、スマホが伏せて置かれている
イラスト:AIで作成

この記事の結論

Claude Codeの通知は通知音・デスクトップ通知・スマホの3通りですが、僕の会社の無人の定期処理ではスマホに届かず、1日10通上限のメールに切り替えました。hooksの設定例と6秒・60秒の目安も載せています。

目次9項目
  1. Claude Codeの通知は「通知音・デスクトップ通知・スマホ」の3通り
  2. Claude Codeの通知音とデスクトップ通知は、ターミナルで出方が変わる
  3. claude code hooks で通知する:Notificationの書き方と6秒・60秒
  4. Claude Codeのスマホ通知は、Remote Controlが有効なときだけ
  5. 2026年10月2日、定期タスクの通知はスマホに届かなかった
  6. 結果はメールで受け取る形にした:1日10通の上限と3つの便
  7. 無人の処理で通知を設計するときの注意
  8. まとめ
  9. よくある質問

【無料・メールだけ】Claude Code 2daysセミナー(第二の脳構築講座)の次回開催の案内を受け取る →

Claude Codeの通知を受け取る方法は、通知音・デスクトップ通知・スマホへのプッシュ通知の3通りから選べます。ただ、僕の会社が無人で回している定期処理では、スマホへの通知が届きませんでした。だから今は、処理が終わった結果をサーバーからのメールで受け取る形にしています。

2026年10月2日、定期タスクの結果をスマホで知ろうとしたところ、定期タスクのセッションはRemote Controlにつながらず、通知は来ませんでした。今は1日10通までの上限の中で、朝・昼・晩の3回だけ結果のメールを送っています。

この記事では、通知音・hooks・スマホ通知の条件を公式ドキュメントで確かめ、無人の処理の結果をメールで受け取る実例まで並べます。「席を外している間に終わったら、どう気づけばいいの?」と迷っている方は、最初の章で全体がつかめます。

Claude Codeの通知は「通知音・デスクトップ通知・スマホ」の3通り

Claude Codeで作業の終わりや入力待ちに気づく方法は、手元で鳴る通知音、画面の隅に出るデスクトップ通知、スマホへのプッシュ通知の3つです。この3つで足りないときに、hooksで自分の通知を足します。

公式ドキュメントでは、作業が終わったときや許可の確認で止まったときに、席を外していそうなら通知の出来事が起きると書かれています。これを音や通知に変えておけば、長い作業の間に別の仕事ができます。

4つの受け取り方の違い

どこで気づけるかと、無人の処理で使えるかを並べました。下の「無人の処理」の列は、僕の会社で試した範囲の結果です。

受け取り方気づける場所主な設定無人の定期処理で
通知音(ターミナルのベル)そのMacの前preferredNotifChannel を "terminal_bell"席にいないと気づけない
デスクトップ通知そのMacの画面Ghostty・Kitty・iTerm2は既定で出る席にいないと気づけない
hooksの通知(Notification)コマンドしだい~/.claude/settings.json の hooks何を動かすかで変わる
スマホへのプッシュ通知外出先のスマホRemote Control+/config の2つのスイッチ実測では届かなかった

席の近くで使うなら、通知音かデスクトップ通知で足ります。僕は、席を外す時間が長い処理ほど、手元の外へ届く手段を先に決めておくほうがいいと考えています。

Claude Codeの通知音とデスクトップ通知は、ターミナルで出方が変わる

デスクトップ通知が設定なしで出るのは、2026年10月時点の公式ドキュメントではGhostty・Kitty・iTerm2の3つだけです。ほかのターミナルでは、ベルを鳴らす設定かhooksを足します。

通知音だけでいいなら preferredNotifChannel

いちばん手軽なのは、ターミナルのベルを鳴らす設定です。~/.claude/settings.json に次の1行を足すと、作業の終わりなどでベルが鳴ります。

{
  "preferredNotifChannel": "terminal_bell"
}

macOS付属のターミナル(Apple Terminal)で鳴らないときは、ベルの設定も見てください。公式ドキュメントでは、初回のターミナルの設定を受け入れると、ベル音がオフになります。

戻すには、ターミナルの設定の「プロファイル」→「詳細」にあるベルの項目をオンにします。「通知音が急に鳴らなくなった」ときは、まずここを疑うと早いです。

iTerm2とtmuxは、もう一段の設定が要る

iTerm2は通知が出る3つに入っていますが、OSの通知センターへ渡すには転送をオンにします。設定の Profiles → Terminal で「Notification Center Alerts」をオンにします。

続けて「Filter Alerts」を開き、「Send escape sequence-generated alerts」もオンにします。どちらか片方だけだと、通知センターには出ません。

tmuxの中で動かすと、通知は既定で外側のターミナルまで届きません。~/.tmux.conf に set -g allow-passthrough on を足して読み込み直します。

SSHでつないだ先のClaude Codeでも、デスクトップ通知は手元のマシンに届くと公式に書かれています。それでも出ないときは、OSの設定でターミナルに通知の許可があるかを確かめます。

claude code hooks で通知する:Notificationの書き方と6秒・60秒

好きな音を鳴らしたい、別のアプリに知らせたいときは、hooksのNotificationを使います。hooksの通知は、Claude Code自身の通知を置き換えず、並んで動きます。

hooksそのものの仕組みと設定ファイルの置き場所は、Claude Codeのhooksの使い方と実例にまとめました。ここでは通知に使う部分だけを書きます。

macOSで音を鳴らす最小の設定

次の例は、Claude Codeが通知を出すたびに、macOS標準の効果音を鳴らす設定です。matcher を空にすると、すべての種類の通知で動きます。

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

書いたあとは、Claude Codeの入力欄で /hooks を開くと、Notificationの下に登録が見えます。すでに hooks の項目があるファイルなら、全体を置き換えずに Notification を横に足します。

許可待ちは約6秒、入力待ちは約60秒で動く

通知の種類は matcher で絞れます。よく使うのは次の2つで、公式ドキュメントに動く時刻の目安が書かれています。

matcher動くとき(公式の目安)向いている使い方
permission_prompt許可の確認が出て約6秒たったとき。ターミナルでは打鍵のたびに先へ延びる確認で止まったことに気づく
idle_prompt応答が終わって約60秒、何も入力していないとき作業の終わりに気づく

idle_prompt は、裏でエージェントが動いている間や、利用上限の解除を待っている間は動きません。作業の終わりをすぐ知りたいなら、約60秒の遅れがあると知っておくと戸惑いません。

許可の確認で止まる原因そのものは、Claude Codeが途中で止まる原因に書きました。通知は「止まったことに気づく」手段で、止まらない設定とは別に考えます。

デスクトップ通知を出すなら、権限の落とし穴に注意

macOSでは、osascript で通知を出す例が公式にあります。この通知はスクリプトエディタを通して出るため、そこに通知の許可が無いと何も出ず、エラーも出ません。

出ないときは、osascript -e 'display notification "test"' を一度実行します。そのあと、システム設定の「通知」でスクリプトエディタの通知を許可します。許可を求める画面は自動では出ません。

Notificationフックでは、止めたり変えたりはできない

Notificationフックに届くのは、通知の文(message)、題名(title)、種類(notification_type)の3つです。フックの結果で通知を止めたり、Claude Codeを止めたりはできません。

公式ドキュメントでは、外部のサービスへの転送や記録などの「ついでの処理」に使うものとされています。応答の終わりで何かをしたいなら、Claude Codeが応答を終えたときに動く Stop を使います。

Claude Codeのスマホ通知は、Remote Controlが有効なときだけ

スマホへのプッシュ通知は、Remote Controlが有効なセッションで、Claudeが送るかどうかを決める仕組みです。公式ドキュメントでは、送られるのは主に長い作業が終わったときと、続けるのに判断が要るときです。

まずスマホアプリに同じアカウントでログインし、通知を許可します。次に /config で「Push when Claude decides」か「Push when actions required」をオンにします。

通知の種類ごとの細かい設定は無く、この2つのスイッチだけです。また、接続したターミナルで入力している間や、そのウィンドウを見ている間は、スマホへの通知は飛ばされます。

Remote Controlの始め方とスマホからの操作は、Claude Codeをスマホから使うRemote Controlに書いています。

ここで大事なのは「Remote Controlが有効なとき」という条件です。人が開いて使うセッションでは満たしやすい一方、誰も触らない処理では、この条件が満たされているかを先に確かめる必要があります。

2026年10月2日、定期タスクの通知はスマホに届かなかった

僕の会社で通知を見直したきっかけは、毎日決まった時刻に動かしている無人の作業でした。2026年10月2日に試したところ、定期タスクのセッションはRemote Controlにつながらず、スマホへの通知は届きませんでした。

何を試して、何が起きたか

この日に作ったのは、社内の定期処理が終わったら結果を知らせる仕組みです。僕が欲しかったのは、Macを開けたまま放っておいても、終わったら手元で分かる形でした。

デスクトップアプリの定期タスクは、公式ドキュメントでは、予定の時刻に新しいセッションを自動で始めます。社内の記録では、そのセッションはRemote Controlにつながらず、スマホ通知が届きませんでした。

毎回が新しいセッションなので、前の回の続きを渡すには工夫が要ります。その方法はClaude Codeのセッション再開と引き継ぎに書きました。

スマホ通知はRemote Controlが有効なときの機能なので、仕様どおりの結果です。人が開いたセッションで届く通知が、無人のセッションでも届くとは限りません。

同じ日には、許可待ちでの停止も起きていた

同じ10月2日の朝には、定期処理の2本が許可の確認で止まり、昼前に再実行しています。止まった理由と直し方は、途中で止まる原因の記事(上の章のリンク先)に詳しく書きました。

無人の処理では、止まっても知らせが来なければ、次に画面を開くまで気づけません。だから結果を知らせる道を、Claude Codeの通知とは別に持つことにしました。

結果はメールで受け取る形にした:1日10通の上限と3つの便

僕の会社では、2026年10月2日から、定期処理の結果をメールで受け取る形を本線にしています。サーバーに置いた通知用のPHPが、届いた結果をメールにして送ります。

この通知メールは、2026年10月4日にヘッダーを確かめたとき、SPF と DMARC が通っていました。社員のメールの方は通っておらず、その調べ方は DMARC fail の原因と直し方 にまとめています。

しくみは「最後の手順で送信役を呼ぶ」だけ

定期処理の指示文の最後の手順で、送信用のスクリプトを動かします。スクリプトはその回の結果をまとめて、サーバーの通知用PHPに渡し、PHPがメールを送ります。

宛先はサーバー側で固定していて、送る側からは変えられません。送る側の指示が書き換えられても、宛先は変わらない作りです。

送信の上限は1日10通です。送る側が何度も動いてしまっても、メールが際限なく出ることはありません。

1日5回の処理に、メールは3便だけ

2026年10月23日に、社内の定期処理を1日5回(7時・10時半・12時40分・18時・22時)にすると決め、翌24日から動かしています。このとき、メールを送る便は朝・昼・晩の3つだけにしました。

理由は、通知用PHPの1日10通の上限です。12時40分と22時の回はメールを送らず、その結果は次の便に載せます。

処理の回メール結果が載る便
7時(朝)送るその回
10時半(昼)送るその回
12時40分送らない18時の便
18時(晩)送るその回
22時送らない翌朝7時の便

送信用のスクリプトは、前回送ってから終わって、まだどのメールにも載っていない結果を拾います。だから送らない回の結果も、取りこぼさずに次の便でまとめて届きます。

メールに寄せたら、まとめる設計が要った

2026年10月6日には、別に出していた要約のメールを止めて、結果のメールに1つの欄として入れました。失敗したときだけは、すぐ送るメールを残しています。

メールの通数は増やさず、1通に載せる中身を増やす形です。僕なら上限のあるメールでは、最初から「どの便に何を載せるか」を表にしてから作ります。

メールの側も止まることがある

10月4日には、メールに載せる外部サービスの数字を取る部分で認証が切れ、送り直しが止まりました。僕の承認で、ログインが切れても影響しない鍵の方式に切り替えています。

知らせの道を1本にすると、その道が止まったときに気づけません。僕は、メールが来ないこと自体を「何かが止まっている」合図として扱うのがいいと考えています。

無人の処理で通知を設計するときの注意

無人の処理では、「終わったら知らせる」より「止まっても気づける」ほうが大事だと僕は考えています。僕の会社の運用から、先に決めておきたいことを4つに分けました。

始める前に決める4つのこと

  1. どこで受け取るか:席の外で知りたいなら、そのMacの外へ届く手段(メールやチャット)を選ぶ
  2. 何回まで送るか:送り先の上限を先に確かめ、回数を決める。上限に合わせて便をまとめる
  3. 失敗の知らせを別にするか:結果のまとめとは別に、失敗だけはすぐ届く道を残す
  4. 来ないときをどう読むか:知らせが来ないこと自体を、止まった合図として扱う

Stopフックで送る方法もある

指示文の手順に入れる代わりに、Stopのフックで送信のコマンドを動かす方法もあります。Stopは応答が終わるたびに動くので、送り先の上限との相性を先に考えます。

コマンドのフックは "async": true を付けると、Claude Codeを待たせずに裏で動きます。外のサービスに送るなら、相手の宛先や鍵は設定ファイルに直接書かず、別の場所で管理します。

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          { "type": "command", "command": "/path/to/send-result.sh", "async": true }
        ]
      }
    ]
  }
}

上の例のスクリプト名は架空です。メールの宛先も、スクリプトの外で管理する形にしておくと、設定ファイルを人に見せるときに困りません。

定期タスクはMacが起きている間しか動かない

デスクトップアプリの定期タスクは、アプリが開いていて、Macが起きている間だけ動きます。スリープ中に予定の時刻を過ぎた回は飛ばされ、起きたときに1回だけ取り戻しの実行が入ります。

つまり、知らせが来ない理由が「止まった」ではなく「そもそも動いていない」こともあります。

対話なしで回すならclaude -pで定期実行する方法を、Mac標準の仕組みで時刻を決めるならlaunchdでclaudeを動かす設定を見てください。

まとめ

  • Claude Codeの通知は、通知音・デスクトップ通知・スマホへのプッシュ通知の3通り。足りないときはhooksのNotificationで自分の通知を足す
  • デスクトップ通知が設定なしで出るのはGhostty・Kitty・iTerm2だけ。ほかは preferredNotifChannel を "terminal_bell" にするか、hooksで音を鳴らす
  • Notificationの permission_prompt は許可の確認から約6秒、idle_prompt は応答の終わりから約60秒で動く。通知を止めたり変えたりはできない
  • スマホ通知はRemote Controlが有効なときの機能。僕の会社では2026年10月2日、無人の定期タスクから届かなかった
  • 僕なら無人の処理は最初から、上限つきのメールのように手元の外へ届く道を1本決め、来ないこと自体を止まった合図にします

よくある質問

Claude Codeの作業が終わったら通知音を鳴らせますか?

鳴らせます。設定ファイルの preferredNotifChannel を "terminal_bell" にするとターミナルのベルが鳴ります。好きな音にしたいなら、Notificationフックで音を再生するコマンドを動かします。macOSなら afplay で標準の効果音を鳴らせます。

Claude Codeのデスクトップ通知が出ないのはなぜですか?

多くはターミナルの違いです。2026年10月時点の公式ドキュメントでは、何も設定せずにデスクトップ通知が出るのはGhostty・Kitty・iTerm2だけです。iTerm2は通知の転送をオンにする設定が要り、tmuxの中では allow-passthrough が要ります。

Notificationフックで、Claude Codeの動きを止めたり変えたりできますか?

できません。公式ドキュメントでは、Notificationフックは通知を止めたり書き換えたりできず、記録や外部への転送などに使うものとされています。応答の終わりで続けさせたいときは、Stopフックを使います。

定期タスクの結果をスマホで知るにはどうすればいいですか?

公式のスマホ通知はRemote Controlが有効なセッションの機能です。僕の会社の実測では、無人の定期タスクはRemote Controlにつながらず通知が届きませんでした。今は結果をメールで受け取っています。

引用元・参考にした記事

  1. Configure your terminal for Claude Code出典Claude Code Docs参照
  2. Automate actions with hooks出典Claude Code Docs参照
  3. Hooks reference出典Claude Code Docs参照
  4. Continue local sessions from any device with Remote Control出典Claude Code Docs参照
  5. Schedule recurring tasks in Claude Code Desktop出典Claude Code Docs参照
  6. Settings reference出典Claude Code Docs参照