IDE-Terminals in VS Code, Cursor und JetBrains bekommen von Claude Code standardmäßig keine Desktop-Benachrichtigung, weil Claude Code nur an iTerm2, Ghostty und Kitty eine schickt. Damit du benachrichtigt wirst, setz entweder "preferredNotifChannel": "terminal_bell" und lass die IDE die Bell behandeln, oder füg in ~/.claude/settings.json einen Notification-Hook hinzu, der eine Desktop-Benachrichtigung anzeigt oder einen Push schickt. Hooks werden im integrierten Terminal genauso ausgelöst wie im Chat-Panel der VS Code-Extension, weil beide dieselbe Settings-Datei lesen.
01Warum die IDE still bleibt
Der eingebaute Alert von Claude Code hängt vom Terminal ab, in dem es läuft. Mit der Standardeinstellung gibt es nur in iTerm2, Ghostty und Kitty eine Desktop-Benachrichtigung, und die Terminal-Doku von Anthropic nennt das integrierte Terminal von VS Code ausdrücklich als eines, das keine bekommt. JetBrains-Terminals sind in derselben Lage. Der Terminal-Bell-Guide erklärt alle Werte von preferredNotifChannel.
Es gibt zwei Wege, Claude Code in VS Code und Cursor zu nutzen, und der Unterschied ist wichtig:
claude im integrierten Terminal~/.claude/settings.json~/.claude/settings.json (dieselbe Datei)JetBrains-IDEs (IntelliJ IDEA, PyCharm, WebStorm, GoLand, Android Studio und andere) verhalten sich wie die rechte Spalte: Das Claude Code-Plugin startet claude im integrierten Terminal der IDE und verbindet sich damit.
02Option 1: die Terminal-Bell
Wenn claude in einem integrierten Terminal läuft, füge Folgendes in ~/.claude/settings.json ein:
{
"preferredNotifChannel": "terminal_bell"
}
Claude Code sendet dann das Bell-Zeichen, wenn es dich braucht. Was danach passiert, entscheidet die IDE. VS Code und Cursor behandeln die Terminal-Bell über ihre Accessibility-Signal-Einstellungen; such in den Settings nach „terminal bell“, um einen Sound auszuwählen. Bei JetBrains-IDEs schau in die Terminal-Einstellungen deiner IDE-Version. Eine Bell überhört man leicht, wenn man keine Kopfhörer aufhat oder die IDE im Hintergrund ist – deshalb greifen die meisten zu Option 2.
03Option 2: ein Notification hook
Ein Hook führt einen Befehl deiner Wahl aus und funktioniert in jeder IDE, im Terminal und im Chat-Panel von VS Code. Dieser hier zeigt unter macOS eine Desktop-Benachrichtigung an:
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
}
]
}
]
}
}
Unter Linux nimmst du notify-send 'Claude Code' 'Claude Code needs your attention', unter Windows einen PowerShell-Befehl; der Linux-Guide und der Windows-Guide enthalten getestete Varianten. Wenn osascript unter macOS nichts anzeigt, öffne Systemeinstellungen > Mitteilungen und erlaube Mitteilungen für Skripteditor – von dieser App kommen die Benachrichtigungen von osascript.
In der VS Code-Extension kannst du Hooks prüfen, ohne die Datei zu öffnen: Öffne den Bereich Customize und wähle Hooks, um die in der Session geladenen Hooks nach Event gruppiert zu sehen (Claude Code v2.1.269 oder neuer).
Wenn du Bescheid bekommen willst, sobald Claude fertig ist, und nicht erst, wenn es wartet, füge zusätzlich einen Stop-Hook hinzu. Der Guide zu Benachrichtigungen, wenn Claude fertig ist zeigt beides zusammen.
In der VS Code-Extension ist das Timing anders
Im Terminal wartet die permission_prompt-Benachrichtigung, bis der Prompt etwa sechs Sekunden ohne Tastendruck offen ist, und jede Taste, die du drückst, verschiebt sie. In der VS Code-Extension (und in Claude Desktop) wird sie laut der Doku von Anthropic etwa sechs Sekunden nach der Frage von Claude ausgelöst, ohne beim Tippen aufgeschoben zu werden, und gar nicht, wenn du vorher antwortest. Falls dich das beim Arbeiten im Panel nervt, setz die Umgebungsvariable CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS=1, um sie dort abzuschalten. Der Notification hook-Guide listet alle Benachrichtigungstypen auf und wann sie ausgelöst werden.
04Remote-Fenster: SSH, WSL, Dev Container und JetBrains Remote Development
Hier gehen IDE-Benachrichtigungen am häufigsten schief. Ist ein VS Code- oder Cursor-Fenster mit einem SSH-Host, WSL oder einem Dev Container verbunden, läuft Claude Code auf diesem System und liest dort ~/.claude/settings.json, nicht auf deinem Laptop. Auch deine Hooks laufen dort. Ein Desktop-Befehl wie osascript oder notify-send hat dann keinen Desktop zum Anzeigen und schlägt stillschweigend fehl.
Bei JetBrains Remote Development ist es ähnlich: Das Claude Code-Plugin muss auf dem Remote-Host installiert sein, und Claude Code läuft dort.
Was stattdessen funktioniert:
- WSL unter Windows: Ein Hook kann
powershell.exeüber die Windows-Interop aufrufen, solange es innerhalb von WSL imPATHliegt. - SSH-Hosts und Container: Schick den Alert übers Netzwerk an etwas, das dich erreicht, etwa ntfy oder einen Telegram-, Slack- oder Discord-Webhook. Der SSH-Guide erklärt die Optionen.
05Ein externes Terminal mit /ide nutzen
Wenn du die eingebaute Desktop-Benachrichtigung willst, starte Claude Code in iTerm2, Ghostty oder Kitty und verbinde es mit dem Befehl /ide mit der IDE. Diff-Ansicht und das Teilen der Auswahl laufen weiter über die IDE, die Alerts kommen vom externen Terminal. In iTerm2 musst du vorher die Alert-Einstellungen aktivieren, wie im Terminal-Bell-Guide beschrieben.
06Was du sonst noch wissen solltest
- Shift+Enter: In VS Code und Cursor führst du einmal
/terminal-setupaus, damit Shift+Enter einen Zeilenumbruch einfügt. In JetBrains-Terminals gibt es das nicht; nimm Ctrl+J oder\und dann Enter. - Remote Control: Remote Control von Anthropic lässt sich in der VS Code-Extension mit
/remote-controlstarten, damit kannst du die Session in der mobilen Claude-App verfolgen. Dafür gelten eigene Plan- und Anmeldevoraussetzungen; siehe den Vergleich. - Mehrere Fenster: Wenn du Claude Code in mehr als einem IDE-Fenster laufen lässt, pack den Projektordner in den Alert, damit du weißt, welches dich braucht. Der Input des Hooks enthält
cwd. Siehe mehrere Sessions parallel.
07Wo Claude Code Notifier ins Spiel kommt
Ein Notification-Hook mit dem Notifier deiner Plattform ist eine gute, kostenlose Lösung, solange du an der IDE sitzt. Bist du nicht am Bildschirm, hilft er nicht, und antworten kannst du damit auch nicht.
ccn von Claude Code Notifier ist ebenfalls ein Hook und funktioniert in IDE-Terminals also genauso wie in jedem anderen Terminal, auf dem Mac, unter Windows und Linux. Allein installiert zeigt es eine Desktop-Benachrichtigung, wenn Claude fertig ist, eine Berechtigung braucht oder eine Frage stellt. Mit gekoppeltem Handy kannst du eine Berechtigungsanfrage einmalig erlauben, für die Session erlauben oder ablehnen, eine Antwort auf die Frage von Claude auswählen und die nächste Anweisung vom Handy schicken. Hast du in den letzten 30 Sekunden getippt, fragt das Terminal wie gewohnt und auf dem Handy wartet nichts. Pushes ans Handy laufen über ein Relay statt über den lokalen Desktop – installierst du ccn also auf dem Remote-Rechner, mit dem dein IDE-Fenster verbunden ist, bekommt dein Handy trotzdem Bescheid. Claude Code Notifier ist unabhängig und nicht von Anthropic. Siehe die ccn-Seite und Handy koppeln.
08FAQ
Warum benachrichtigt mich Claude Code in VS Code nicht?
Das integrierte Terminal von VS Code bekommt die eingebaute Desktop-Benachrichtigung von Claude Code nicht. Setz "preferredNotifChannel": "terminal_bell" oder füge einen Notification-Hook in ~/.claude/settings.json hinzu und starte dann eine neue Session.
Funktionieren Hooks in der Claude Code-Extension für VS Code?
Ja. Claude Code löst in IDE-Extensions dieselben Hook-Events aus wie im Terminal, und Extension und CLI teilen sich ~/.claude/settings.json. Im Bereich Customize der Extension kannst du die Hooks ansehen und bearbeiten.
Funktioniert das auch in Cursor?
Ja. Cursor kann dieselbe Claude Code-Extension installieren, und claude läuft im integrierten Terminal wie in VS Code. Alles oben Gesagte gilt auch dort.
Mein Hook funktioniert lokal, aber nicht in einem Remote-SSH-Fenster. Warum?
In einem Remote-Fenster laufen Claude Code und seine Hooks auf dem Remote-Rechner, und der hat keinen Desktop. Bearbeite ~/.claude/settings.json auf diesem Rechner und nutze statt eines Desktop-Befehls einen Netzwerk-Push wie ntfy.