Claude Code には組み込みの通知機能があります。Claude が作業を終えたり permission prompt で待機したりしたとき、あなたが離席しているようであれば terminal 経由で知らせてくれます。通知方法は preferredNotifChannel 設定で決まります。デフォルトの "auto" では、iTerm2、Ghostty、Kitty ではデスクトップ通知を送り、それ以外のほとんどの terminal では何もしません。"terminal_bell" に設定すれば、どの terminal でもベル文字を鳴らせます。設定は /config(Local notifications という名前で表示されます)か ~/.claude/settings.json で行います。
01手っ取り早い解決策
Claude が終了しても何も聞こえない場合は、~/.claude/settings.json に次を追加します:
{
"preferredNotifChannel": "terminal_bell"
}
次に、terminal がベルに反応するよう設定してください。音を鳴らす、Dock アイコンを跳ねさせる、タブを点滅させる、通知を出す、などです。この設定は Claude Code ではなく terminal 側にあります。Mac、Windows、Linux のどれでも、ほとんどの terminal は環境設定に「ベル」や「アラート」の項目があります。
02preferredNotifChannel の全値
"auto"(デフォルト)iTerm2、Ghostty、Kitty ではデスクトップ通知。Apple Terminal では、そのプロファイルの音声ベルがオフの場合のみベル文字。それ以外では何もしない"terminal_bell"どの terminal でもベル文字を鳴らす"iterm2"iTerm2 のデスクトップ通知を送る"iterm2_with_bell"iTerm2 のデスクトップ通知とベルの両方"kitty"Kitty のデスクトップ通知を送る"ghostty"Ghostty のデスクトップ通知を送る"notifications_disabled"何も送らないこの設定はどの設定ファイルにも書けます:ユーザー(~/.claude/settings.json)、プロジェクト(.claude/settings.json)、ローカル(.claude/settings.local.json)。古いバージョンでは ~/.claude.json に保存されており、Claude Code は現在もそこに残っている値を読み込みます。
03組み込み通知が発火するタイミング
Anthropic のドキュメントによると、組み込みアラートのタイミングは Notification hook と同じです。terminal セッションでは次のとおりです:
- Permission prompt:キー入力がないまま prompt が約 6 秒待機した後。キーを押すたびに待ち時間はリセットされます。
- 終了時:Claude が停止してから約 60 秒後。ただし、その間に入力がなく、実行中のバックグラウンドエージェントもない場合に限ります。
つまり、組み込みの「終了」アラートはあえて即時には出ません。画面を見ている最中に通知するのではなく、席を離れたときに知らせるための設計です。ターンが終わった瞬間に通知が欲しい場合は、代わりに Stop hook を使ってください(Stop hook ガイドを参照)。
04terminal 別の設定
iTerm2(macOS)
iTerm2 はデフォルトでデスクトップ通知を受け取りますが、表示するには iTerm2 側で許可が必要です:
- Settings > Profiles > Terminal を開きます。
- Notification Center Alerts にチェックを入れます。
- Filter Alerts をクリックし、Send escape sequence-generated alerts を有効にします。
また、システム設定 > 通知で iTerm2 の通知が許可されていることも確認してください。
Apple Terminal(macOS)
Apple Terminal ではデスクトップ通知は届きません。"auto" の場合、Claude Code は最前面ウィンドウのプロファイルで Audible bell がオフになっているときに限り、無音のベルを送ります。プロファイルの Visual bell や Dock バウンスのオプションがオンなら、ベルはウィンドウの点滅として、または Terminal がバックグラウンドにあるときは Dock アイコンのバウンスとして表示されます。
一点注意があります。Claude Code の初回起動時の terminal セットアップを承認していた場合、/terminal-setup が実行され、Apple Terminal のプロファイルで音声ベルがオフになっています。音を鳴らしたい場合は、"terminal_bell" に設定し、Settings > Profiles > Advanced で Audible bell を再びオンにしてください。
Ghostty と Kitty(macOS と Linux)
どちらも設定不要でデスクトップ通知を受け取り、OS の通知センターに転送します。
その他のターミナル
Windows Terminal、GNOME Terminal、Konsole、Alacritty、WezTerm、Warp、IDE のターミナルでは、デフォルトでは何も通知されません。"terminal_bell" を設定してターミナル側のベル処理を有効にするか、hook を使ってください。IDE のターミナルには独自のクセがあり、VS Code、Cursor、JetBrains のガイドで解説しています。
05SSH 経由や tmux 内での動作
デスクトップ通知は手元のコンピューターのターミナルが解釈するエスケープシーケンスなので、Claude Code を SSH 経由でリモートサーバー上で実行していても届きます。Ghostty と Kitty は追加設定なしで転送します。iTerm2 では前述のアラート設定が必要です。
tmux 内では、passthrough を許可しない限りシーケンスが握りつぶされます。~/.tmux.conf に次の設定を追加し、tmux source-file ~/.tmux.conf を実行してください:
set -g allow-passthrough on
デタッチされたセッションは別の問題です。ターミナルがアタッチされていなければ、アラートを表示できるものがありません。tmux ガイドとSSH 経由の通知を参照してください。
06組み込みアラートと hook の併用
Notification hook は組み込みアラートと並行して動作し、置き換えるものではありません。Anthropic のドキュメントには、"notifications_disabled" でも hook は発火すると明記されています。この設定は Claude Code の通知方法を変えるだけで、hook が実行されるかどうかには影響しません。そのため、次のように役割を分けられます:
- デスクでのアラートには
"auto"または"terminal_bell"を使います。 - それ以外は hook で追加します。たとえばシステムサウンド、通知が出ないターミナルでのデスクトップ通知、ntfy によるスマートフォンへの push などです。
- hook ですでにデスクトップ通知を表示している場合は、通知が二重にならないよう
"notifications_disabled"を設定してください。
たとえば次の設定では、どのターミナルでも Claude が対応を求めるたびに macOS でサウンドが鳴ります:
{
"hooks": {
"Notification": [
{
"hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }]
}
]
}
}
Linux と Windows 向けの同等の設定は、Linux ガイドとWindows ガイドにあります。
07組み込みオプションの限界
- コンピューターの前でしか気づけません。ベルや通知は画面上のターミナルから出るため、キッチンに行っている間は見逃してしまいます。
- ターミナルに依存します。多くの人気ターミナルでは、設定を変えるまで何も通知されません。
- その場で応答できません。Claude が待っていることはわかっても、結局キーボードの前に戻る必要があります。
Anthropic の Remote Control と Claude モバイルアプリを使うのが、スマートフォンで push を受け取る公式の方法です。他の選択肢との比較は比較ガイドで解説しています。
08Claude Code Notifier の位置づけ
デスクで作業するなら、組み込みアラートと "terminal_bell" だけで十分かもしれません。Claude Code Notifier はデスクを離れているときのためのツールです。コマンドラインツール ccn は Claude Code の hook として動作するため、ベルの設定に関係なく Mac、Windows、Linux のどのターミナルでも使えます。単体では、Claude の作業完了時、権限が必要なとき、質問があるときにデスクトップ通知を表示します。スマートフォンをペアリングすれば、スマートフォンから権限の許可・拒否、Claude の質問への回答、次の指示の送信ができます。直近 30 秒以内にキー入力していれば、スマートフォンには何も届きません。詳しくはccn のページをご覧ください。
09よくある質問
Claude Code の通知をオフにするには?
"preferredNotifChannel": "notifications_disabled" を設定するか、/config の Local notifications で選択してください。設定済みの Notification hook は引き続き実行されます。
iTerm2 で Claude Code の通知が表示されないのはなぜ?
iTerm2 では、Profiles > Terminal > Filter Alerts で Notification Center Alerts にチェックを入れ、Send escape sequence-generated alerts を有効にする必要があります。さらに macOS の設定で通知を許可してください。tmux 内では allow-passthrough on も設定します。
Apple Terminal でベルが鳴らないのはなぜ?
Claude Code のターミナルセットアップが Apple Terminal の可聴ベルをオフにするためです。"terminal_bell" を設定し、プロファイルの Advanced タブで Audible bell をオンに戻してください。
VS Code でターミナルベルは使えますか?
デフォルトでは使えません。"terminal_bell" を設定して VS Code のターミナルベル設定を確認するか、hook を使ってください。詳しくは IDE ガイドをご覧ください。