Claude Code bringt eine eingebaute Benachrichtigung mit: Wenn Claude fertig ist oder bei einem Berechtigungs-Prompt wartet und du gerade nicht da zu sein scheinst, meldet es sich über das Terminal. Wie genau, legt die Einstellung preferredNotifChannel fest. Der Standardwert "auto" schickt in iTerm2, Ghostty und Kitty eine Desktop-Benachrichtigung und tut in den meisten anderen Terminals gar nichts. Setz ihn auf "terminal_bell", damit in jedem Terminal das Bell-Zeichen ausgelöst wird – entweder über /config (dort heißt die Option Local notifications) oder in ~/.claude/settings.json.
01Die schnelle Lösung
Wenn du nichts hörst, sobald Claude fertig ist, füg Folgendes in ~/.claude/settings.json ein:
{
"preferredNotifChannel": "terminal_bell"
}
Stell dann sicher, dass dein Terminal auf die Bell auch reagiert: einen Ton abspielen, das Dock-Icon hüpfen lassen, den Tab aufblinken lassen oder eine Benachrichtigung anzeigen. Das stellst du im Terminal ein, nicht in Claude Code. Unter Mac, Windows und Linux haben die meisten Terminals in ihren Einstellungen einen Bereich „Bell“ oder „Alert“.
02Alle Werte von preferredNotifChannel
"auto" (Standard)Desktop-Benachrichtigung in iTerm2, Ghostty und Kitty. In Apple Terminal das Bell-Zeichen nur, wenn die hörbare Bell im jeweiligen Profil aus ist. Sonst nichts"terminal_bell"Löst in jedem Terminal das Bell-Zeichen aus"iterm2"Sendet eine iTerm2-Desktop-Benachrichtigung"iterm2_with_bell"iTerm2-Desktop-Benachrichtigung plus Bell"kitty"Sendet eine Kitty-Desktop-Benachrichtigung"ghostty"Sendet eine Ghostty-Desktop-Benachrichtigung"notifications_disabled"Sendet nichtsDie Einstellung kann in jeder Settings-Datei stehen: User (~/.claude/settings.json), Projekt (.claude/settings.json) oder lokal (.claude/settings.local.json). Ältere Versionen haben sie in ~/.claude.json gespeichert, und Claude Code liest einen dort verbliebenen Wert weiterhin aus.
03Wann die eingebaute Benachrichtigung ausgelöst wird
Laut der Dokumentation von Anthropic hat der eingebaute Hinweis dasselbe Timing wie der Notification-Hook. In einer Terminal-Session:
- Berechtigungs-Prompt: nachdem der Prompt etwa sechs Sekunden ohne Tastendruck gewartet hat. Jeder Tastendruck startet die Wartezeit neu.
- Fertig: etwa 60 Sekunden nachdem Claude stoppt, und nur, wenn du seitdem nichts getippt hast und kein Hintergrund-Agent mehr läuft.
Der eingebaute „Fertig“-Hinweis kommt also absichtlich nicht sofort. Er soll dich erreichen, wenn du weggegangen bist, und dich nicht anpingen, während du zuschaust. Willst du sofort benachrichtigt werden, wenn ein Turn endet, nimm stattdessen einen Stop-Hook (siehe den Guide zum Stop hook).
04Terminal für Terminal
iTerm2 (macOS)
iTerm2 bekommt standardmäßig eine Desktop-Benachrichtigung, iTerm2 zeigt sie aber erst an, wenn du es erlaubst:
- Öffne Settings > Profiles > Terminal.
- Aktiviere Notification Center Alerts.
- Klick auf Filter Alerts und aktiviere Send escape sequence-generated alerts.
Prüf außerdem unter System Settings > Notifications, ob iTerm2 Benachrichtigungen anzeigen darf.
Apple Terminal (macOS)
Apple Terminal bekommt keine Desktop-Benachrichtigung. Mit "auto" sendet Claude Code nur dann eine stille Bell, wenn im Profil des vorderen Fensters Audible bell ausgeschaltet ist. Die Bell erscheint dann als Aufblitzen des Fensters oder – wenn Terminal im Hintergrund ist – als hüpfendes Dock-Icon, sofern im Profil Visual bell bzw. die Dock-Bounce-Option aktiv ist.
Achte auf ein Detail: Wenn du beim ersten Start den Terminal-Setup-Prompt von Claude Code bestätigt hast, wurde /terminal-setup ausgeführt, und das schaltet die hörbare Bell in deinem Apple-Terminal-Profil aus. Damit du einen Ton hörst, setz "terminal_bell" und schalte Audible bell unter Settings > Profiles > Advanced wieder ein.
Ghostty und Kitty (macOS und Linux)
Beide bekommen ohne Einrichtung eine Desktop-Benachrichtigung und leiten sie an die Mitteilungszentrale deines Betriebssystems weiter.
Alle anderen
Windows Terminal, GNOME Terminal, Konsole, Alacritty, WezTerm, Warp und IDE-Terminals bekommen standardmäßig gar nichts. Setz "terminal_bell" und aktivier die Bell-Behandlung im Terminal selbst, oder nutz einen Hook. IDE-Terminals haben ihre eigenen Eigenheiten, die im Guide zu VS Code, Cursor und JetBrains behandelt werden.
05Über SSH und in tmux
Die Desktop-Benachrichtigung ist eine Escape-Sequenz, die das Terminal auf deinem eigenen Rechner auswertet. Sie erreicht dich also auch dann, wenn Claude Code per SSH auf einem Remote-Server läuft. Ghostty und Kitty leiten sie ohne weitere Einrichtung weiter. iTerm2 braucht die oben beschriebenen Alert-Einstellungen.
In tmux wird die Sequenz verschluckt, solange du kein Passthrough erlaubst. Füg das hier in ~/.tmux.conf ein und führ tmux source-file ~/.tmux.conf aus:
set -g allow-passthrough on
Detached Sessions sind ein anderes Problem: Wenn kein Terminal angehängt ist, kann nichts den Alert anzeigen. Siehe den tmux-Guide und Benachrichtigungen über SSH.
06Eingebauter Alert und Hooks zusammen
Notification-Hooks laufen zusätzlich zum eingebauten Alert, sie ersetzen ihn nicht. Die Doku von Anthropic sagt ausdrücklich, dass Hooks auch mit "notifications_disabled" ausgelöst werden: Die Einstellung ändert nur, wie Claude Code dich benachrichtigt, nicht ob dein Hook läuft. Damit kannst du sauber trennen:
- Behalte
"auto"oder"terminal_bell"für den Alert am Schreibtisch. - Nimm einen Hook für alles andere, etwa einen Systemsound, eine Desktop-Benachrichtigung in einem Terminal, das sonst keine bekommt, oder einen Push aufs Handy mit ntfy.
- Wenn ein Hook schon eine Desktop-Benachrichtigung anzeigt, setz
"notifications_disabled", damit du nicht zwei siehst.
Dieses Beispiel spielt zum Beispiel auf macOS in jedem Terminal einen Sound ab, sobald Claude deine Aufmerksamkeit braucht:
{
"hooks": {
"Notification": [
{
"hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }]
}
]
}
}
Entsprechende Varianten für Linux und Windows findest du im Linux-Guide und im Windows-Guide.
07Grenzen der eingebauten Optionen
- Es bleibt auf dem Rechner. Bell oder Benachrichtigung kommen vom Terminal auf deinem Bildschirm. Gehst du in die Küche, verpasst du sie.
- Es hängt vom Terminal ab. Viele beliebte Terminals bekommen nichts, bis du eine Einstellung änderst.
- Du kannst nicht darauf antworten. Du erfährst, dass Claude wartet, musst aber trotzdem zurück an die Tastatur.
Remote Control von Anthropic mit der Claude-Mobile-App ist der offizielle Weg zu Pushes aufs Handy. Der Vergleichs-Guide stellt es neben die anderen Optionen.
08Wo Claude Code Notifier ins Spiel kommt
Wenn du am Schreibtisch arbeitest, reichen dir der eingebaute Alert plus "terminal_bell" vielleicht schon. Claude Code Notifier ist für die Zeit, in der du nicht am Schreibtisch bist. Das Kommandozeilen-Tool ccn läuft als Claude Code-Hook und funktioniert daher in jedem Terminal auf Mac, Windows und Linux, mit oder ohne Bell-Einstellungen. Allein zeigt es eine Desktop-Benachrichtigung, wenn Claude fertig ist, eine Berechtigung braucht oder eine Frage stellt. Mit gekoppeltem Handy kannst du Berechtigungen erlauben oder ablehnen, Claudes Fragen beantworten und die nächste Anweisung vom Handy schicken. Hast du in den letzten 30 Sekunden getippt, wartet auf dem Handy gar nichts. Siehe die ccn-Seite.
09FAQ
Wie schalte ich die Benachrichtigungen von Claude Code aus?
Setz "preferredNotifChannel": "notifications_disabled" oder wähl es unter Local notifications in /config. Eingerichtete Notification-Hooks laufen trotzdem weiter.
Warum zeigt iTerm2 keine Benachrichtigungen von Claude Code an?
iTerm2 braucht unter Profiles > Terminal > Filter Alerts ein Häkchen bei Notification Center Alerts und aktiviertes Send escape sequence-generated alerts, dazu die Benachrichtigungsberechtigung in den macOS-Einstellungen. In tmux setz zusätzlich allow-passthrough on.
Warum gibt es in Apple Terminal keine Bell?
Das Terminal-Setup von Claude Code schaltet die hörbare Bell in Apple Terminal ab. Setz "terminal_bell" und schalte Audible bell im Tab Advanced des Profils wieder ein.
Funktioniert die Terminal-Bell in VS Code?
Standardmäßig nicht. Setz "terminal_bell" und prüf die Terminal-Bell-Einstellungen von VS Code, oder nutz einen Hook. Details stehen im IDE-Guide.