VS Code、Cursor、JetBrains の IDE ターミナルでは、デフォルトでは Claude Code からデスクトップ通知が届きません。Claude Code が通知を送るのは iTerm2、Ghostty、Kitty に対してだけだからです。通知を受け取るには、"preferredNotifChannel": "terminal_bell" を設定して IDE にベルを処理させるか、デスクトップ通知を表示したり push を送ったりする Notification hook を ~/.claude/settings.json に追加してください。hook は統合ターミナルでも VS Code 拡張機能のチャットパネルでも同じように動作します。どちらも同じ設定ファイルを読み込むためです。
01IDE で通知が出ない理由
Claude Code の組み込みアラートは、実行しているターミナルに依存します。デフォルト設定では iTerm2、Ghostty、Kitty でのみデスクトップ通知を出し、Anthropic のターミナルに関するドキュメントでも、VS Code の統合ターミナルは通知を受け取らないものとして挙げられています。JetBrains のターミナルも同様です。preferredNotifChannel のすべての値についてはターミナルベルガイドで解説しています。
VS Code と Cursor で Claude Code を実行する方法は 2 つあり、その違いが重要です:
claude~/.claude/settings.json~/.claude/settings.json(同じファイル)JetBrains IDE(IntelliJ IDEA、PyCharm、WebStorm、GoLand、Android Studio など)は右側の列と同じ動作です。Claude Code プラグインは IDE の統合 terminal で claude を実行し、そこに接続します。
02方法 1: terminal bell
統合 terminal で claude を実行している場合は、~/.claude/settings.json に次を追加します。
{
"preferredNotifChannel": "terminal_bell"
}
これで Claude Code は入力が必要なときにベル文字を鳴らします。その後の挙動は IDE 次第です。VS Code と Cursor では、terminal bell はアクセシビリティシグナルの設定で扱われます。設定で「terminal bell」を検索してサウンドを選んでください。JetBrains IDE では、お使いのバージョンの terminal 設定を確認してください。ベルはヘッドホンを外していたり IDE がバックグラウンドにあったりすると気づきにくいため、多くの人は方法 2 も使います。
03方法 2: Notification hook
hook は任意のコマンドを実行でき、どの IDE でも、terminal でも VS Code のチャットパネルでも動作します。次の例は macOS でデスクトップ通知を表示します。
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
}
]
}
]
}
}
Linux では notify-send 'Claude Code' 'Claude Code needs your attention' を、Windows では PowerShell のコマンドを使います。動作確認済みの例はLinux ガイドとWindows ガイドにあります。macOS で osascript の通知が表示されない場合は、システム設定 > 通知を開き、スクリプトエディタの通知を許可してください。osascript の通知はこのアプリから送られます。
VS Code 拡張機能では、ファイルを開かずに hook を確認できます。Customize セクションを開いて Hooks を選ぶと、セッションで読み込まれた hook がイベントごとに表示されます(Claude Code v2.1.269 以降)。
待機中ではなく Claude が完了した瞬間に知りたい場合は、Stop hook も追加してください。両方を組み合わせた例はClaude の完了通知ガイドにあります。
VS Code 拡張機能ではタイミングが異なる
terminal では、permission_prompt 通知はプロンプトが約 6 秒間キー入力されないまで待機し、キーを押すたびに延長されます。Anthropic のドキュメントによると、VS Code 拡張機能(および Claude Desktop)では、Claude が尋ねてから約 6 秒後に、入力中でも延長されずに発火し、それより早く応答すれば発火しません。パネルで作業中に煩わしい場合は、環境変数 CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS=1 を設定すると無効にできます。すべての通知タイプと発火タイミングはNotification hook ガイドにまとめています。
04リモートウィンドウ: SSH、WSL、dev container、JetBrains Remote Development
IDE の通知で最もつまずきやすいのがここです。VS Code や Cursor のウィンドウが SSH ホスト、WSL、dev container に接続されている場合、Claude Code は接続先のシステムで動作し、ノート PC ではなくそちらの ~/.claude/settings.json を読み込みます。hook もそこで実行されます。そのため osascript や notify-send のようなデスクトップ向けコマンドは表示先のデスクトップがなく、何も言わずに失敗します。
JetBrains Remote Development も同様で、Claude Code プラグインはリモートホストにインストールする必要があり、Claude Code もそこで動作します。
代わりに使える方法:
- Windows 上の WSL: WSL 内の
PATHに含まれていれば、hook から Windows interop 経由でpowershell.exeを呼び出せます。 - SSH ホストとコンテナ: ntfy や Telegram、Slack、Discord の webhook など、ネットワーク経由で手元に届くサービスに通知を送ります。選択肢は SSH ガイドで解説しています。
05/ide で外部 terminal を使う
組み込みのデスクトップ通知を使いたい場合は、Claude Code を iTerm2、Ghostty、Kitty で実行し、/ide コマンドで IDE に接続します。差分表示や選択範囲の共有は引き続き IDE で使え、通知は外部 terminal から届きます。iTerm2 では、terminal bell ガイドの説明に従って先にアラート設定を有効にしてください。
06その他の知っておきたいこと
- Shift+Enter: VS Code と Cursor では、一度
/terminal-setupを実行すると Shift+Enter で改行できるようになります。JetBrains の terminal では使えないため、Ctrl+J か、\の後に Enter を使ってください。 - Remote Control: Anthropic の Remote Control は VS Code 拡張機能から
/remote-controlで開始でき、Claude モバイルアプリでセッションを追えます。プランやサインインの要件があるため、比較ページを参照してください。 - 複数ウィンドウ: 複数の IDE ウィンドウで Claude Code を実行する場合は、通知にプロジェクトフォルダを含めると、どのウィンドウが入力待ちか分かります。hook の入力には
cwdが含まれます。複数セッションの実行を参照してください。
07Claude Code Notifier の位置づけ
IDE の前にいるなら、プラットフォームの通知ツールを使った Notification hook は無料で手軽な解決策です。ただし、画面から離れているときには役に立たず、その場で応答することもできません。
Claude Code Notifier の ccn も hook なので、Mac、Windows、Linux の IDE terminal で、他の terminal と同じように動作します。単体でインストールすると、Claude が完了したとき、権限を求めたとき、質問したときにデスクトップ通知を表示します。スマートフォンをペアリングすれば、権限リクエストを一度だけ許可、セッション中は許可、拒否のいずれかで応答でき、Claude の質問への回答を選んだり、次の指示をスマートフォンから送ったりできます。直近 30 秒以内に入力していた場合は通常どおり terminal で確認され、スマートフォン側では待機しません。スマートフォンへの push はローカルのデスクトップではなくリレーを経由するため、IDE ウィンドウの接続先のリモートマシンに ccn をインストールすれば、スマートフォンに通知が届きます。Claude Code Notifier は独立したツールで、Anthropic 製ではありません。ccn のページとスマートフォンのペアリングを参照してください。
08よくある質問
VS Code で Claude Code の通知が届かないのはなぜですか?
VS Code の統合 terminal では Claude Code の組み込みデスクトップ通知を受け取れません。~/.claude/settings.json で "preferredNotifChannel": "terminal_bell" を設定するか Notification hook を追加し、新しいセッションを開始してください。
Claude Code の VS Code 拡張機能で hook は使えますか?
はい。Claude Code は IDE 拡張機能でも terminal と同じ hook イベントを発火し、拡張機能と CLI は ~/.claude/settings.json を共有します。拡張機能の Customize セクションで hook を表示・編集できます。
Cursor でも使えますか?
はい。Cursor には同じ Claude Code 拡張機能をインストールでき、claude は VS Code と同様に統合 terminal で動作します。上記の内容はすべてそのまま当てはまります。
ローカルでは hook が動くのに、Remote SSH ウィンドウでは動かないのはなぜですか?
リモートウィンドウでは、Claude Code とその hook はデスクトップ環境のないリモートマシン上で実行されます。そのマシンの ~/.claude/settings.json を編集し、デスクトップ用のコマンドではなく ntfy などのネットワーク push を使ってください。