claude-code-notifier
so funktioniert's Guides faq
◐Deutsch
English العربية Deutsch Español Français עברית Italiano 日本語 한국어 Nederlands Polski Português (Brasil) Русский Türkçe Tiếng Việt 简体中文 繁體中文
Loslegen
Alle Guides

Der Notification hook in Claude Code: wann er feuert und wie du ihn nutzt

Aktualisiert am 31. Oktober 2026 · 6 Min. Lesezeit
Auf dieser Seite 01Die Benachrichtigungstypen 02Die Timing-Regeln 03Was der Hook bekommt 04Was der Hook kann und was nicht 05Beispiele 06Wo Claude Code Notifier ins Spiel kommt 07FAQ

Der Notification-Hook von Claude Code läuft immer dann, wenn Claude Code eine Benachrichtigung sendet – meistens, weil ein Berechtigungs-Prompt wartet (permission_prompt) oder weil Claude fertig ist und du nicht geantwortet hast (idle_prompt). Er ist darauf abgestimmt, wann du scheinbar nicht da bist: permission_prompt feuert, sobald der Prompt etwa sechs Sekunden ohne Tastendruck gewartet hat, und idle_prompt etwa 60 Sekunden, nachdem Claude fertig ist. Der Hook bekommt den Benachrichtigungstext als JSON, kann nichts blockieren und ist für Nebeneffekte gedacht, etwa einen Desktop-Hinweis oder einen Push aufs Handy.

01Die Benachrichtigungstypen

Der matcher bei einem Notification-Hook ist der Benachrichtigungstyp. Lass ihn leer, damit der Hook bei allen läuft, oder gib die gewünschten mit | getrennt an. Die Typen, die du am ehesten brauchst:

MatcherWann er feuert
permission_promptClaude braucht deine Freigabe für eine Tool-Nutzung (oder die Netzwerkanfrage eines Sandbox-Befehls), und der Prompt wartet seit etwa sechs Sekunden
idle_promptClaude hat vor etwa 60 Sekunden fertig geantwortet, und du hast seitdem nichts eingegeben
elicitation_dialogEin MCP-Server hat ein Formular geöffnet, und du hast seit etwa sechs Sekunden nichts eingegeben
elicitation_url_dialogEin MCP-Server hat dich gebeten, eine URL zu öffnen, und du hast seit etwa sechs Sekunden nichts eingegeben
auth_successAuthentifizierung abgeschlossen

Es gibt noch weitere, etwa agent_needs_input und agent_completed für Hintergrund-Sessions in der Agent-Ansicht sowie eine Reihe von quota_auto_resume_*-Typen für Wartezeiten wegen Nutzungslimits. Die vollständige, aktuelle Liste steht in der Hooks-Referenz.

02Die Timing-Regeln

Genau hier stolpern viele. Der Notification-Hook nutzt dasselbe Timing wie die eigenen Desktop-Benachrichtigungen von Claude Code. In einer Terminal-Session feuert er also nur, wenn du wegschaust:

  • permission_prompt startet einen Timer von etwa sechs Sekunden, sobald der Prompt erscheint. Jeder Tastendruck setzt ihn zurück. Antwortest du schnell, feuert er nie.
  • idle_prompt feuert etwa 60 Sekunden, nachdem Claude fertig ist – aber nur, wenn du seitdem nichts getippt hast und kein Background-Agent mehr läuft. Während Claude Code auf das Zurücksetzen eines Usage-Limits wartet, feuert er nicht.
  • Eine Anfrage, die eintrifft, während schon ein anderer Dialog offen ist, wird ab ihrem Eintreffen getimt. Ihre Benachrichtigung kann dich also erreichen, während sie noch hinter dem offenen Dialog wartet.

Hosts, die Berechtigungen über das Agent SDK beantworten, etwa Claude Desktop und die VS Code-Extension, timen permission_prompt anders: etwa sechs Sekunden nach der Anfrage, ohne Verzögerung durch Tippen, und übersprungen, wenn du oder ein PermissionRequest-Hook vorher antwortet.

Wenn du ein Signal ohne Verzögerung willst, nimm ein anderes Event:

Du willstNimm
Einen Alert, sobald Claude um Erlaubnis fragtPermissionRequest
Einen Alert, sobald Claude fertig istStop
Einen Stups nur, wenn du wirklich weg bistNotification mit idle_prompt

03Was der Hook bekommt

Zusätzlich zu den gemeinsamen Feldern (session_id, transcript_path, cwd, hook_event_name) bekommt ein Notification-Hook die message der Benachrichtigung, optional einen title und den notification_type:

{
  "session_id": "abc123",
  "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",
  "cwd": "/Users/...",
  "hook_event_name": "Notification",
  "message": "Claude needs your permission",
  "title": "Permission needed",
  "notification_type": "permission_prompt"
}

Die message ist der Originaltext von Claude Code, du kannst sie also direkt anzeigen. cwd hilft, wenn du mehrere Sessions laufen hast und wissen willst, welches Projekt gerade fragt.

04Was der Hook kann und was nicht

Ein Notification-Hook kann die Benachrichtigung weder blockieren noch verzögern oder ändern. Exit-Code und stderr werden ignoriert, und Claude Code verwirft systemMessage und continue aus seinem JSON-Output. Er ist rein für Side Effects da.

Ein Output-Feld kann er nutzen: terminalSequence. Hooks laufen ohne Terminal und können Escape-Sequenzen daher nicht selbst schreiben, aber sie können eine an Claude Code übergeben, das sie dann ausgibt. So kann ein Hook eine native Terminal-Benachrichtigung in iTerm2, Ghostty, Kitty, WezTerm, Windows Terminal und anderen auslösen, sogar innerhalb von tmux. Das klappt nur in einer interaktiven Session, in der die Oberfläche von Claude Code auf dem Bildschirm ist.

Auch die Einstellung preferredNotifChannel hält den Hook nicht auf. Selbst mit deaktivierten eingebauten Benachrichtigungen feuert das Notification-Event weiterhin. Die Einstellung ändert nur, wie Claude Code selbst dich benachrichtigt; siehe den Guide zur Terminal-Bell.

05Beispiele

Unterschiedliche Handler pro Typ

Führ für Permission-Prompts und Idle-Erinnerungen jeweils ein eigenes Script aus:

{
  "hooks": {
    "Notification": [
      {
        "matcher": "permission_prompt",
        "hooks": [{ "type": "command", "command": "~/.claude/hooks/permission-alert.sh" }]
      },
      {
        "matcher": "idle_prompt",
        "hooks": [{ "type": "command", "command": "~/.claude/hooks/idle-alert.sh" }]
      }
    ]
  }
}

Mach jedes Script mit chmod +x ausführbar. Die Befehle für Desktop-Benachrichtigungen unter Mac, Windows und Linux findest du unter So bekommst du eine Benachrichtigung, wenn Claude Code fertig ist, deshalb wiederholen wir sie hier nicht.

Die echte Nachricht und das Projekt anzeigen

Dieses Script (macOS und Linux) packt die Nachricht von Claude Code und den Projektordner in die Benachrichtigung statt eines festen Strings:

#!/bin/bash
# ~/.claude/hooks/notify.sh
input=$(cat)
msg=$(jq -r '.message // "Claude Code needs your attention"' <<<"$input")
project=$(basename "$(jq -r '.cwd // "."' <<<"$input")")

if command -v osascript >/dev/null 2>&1; then
  osascript -e 'on run argv' \
            -e 'display notification (item 1 of argv) with title (item 2 of argv)' \
            -e 'end run' "$msg" "Claude Code: $project"
elif command -v notify-send >/dev/null 2>&1; then
  notify-send "Claude Code: $project" "$msg"
fi
exit 0

Wenn du den Text als Argumente übergibst (on run argv), bricht das AppleScript nicht, falls die Nachricht Anführungszeichen enthält. jq muss installiert sein.

Eine native Terminal-Benachrichtigung

Das Beispiel von Anthropic selbst nutzt terminalSequence mit OSC 777, das Ghostty, Warp und urxvt verstehen:

#!/bin/bash
input=$(cat)
title="Claude Code"
body=$(jq -r '.message // "Needs your attention"' <<<"$input")
seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")
jq -nc --arg seq "$seq" '{terminalSequence: $seq}'

Für iTerm2, Windows Terminal oder WezTerm nimmst du stattdessen OSC 9, für Kitty OSC 99. Alles außerhalb der erlaubten Sequenzen wird ignoriert.

06Wo Claude Code Notifier ins Spiel kommt

Ein Notification-Hook, der einen Push-Dienst aufruft, bringt den Alert auf dein Handy – und vielen reicht das. Der ntfy-Guide zeigt diesen Weg.

Was fehlt, ist die Antwort. Wenn permission_prompt feuert, wartet Claude auf einen Dialog, den ein Notification-Hook nicht beantworten kann. Claude Code Notifier löst das mit den Hooks, die es können: PermissionRequest, um deine Entscheidung zurückzugeben, und PreToolUse auf AskUserQuestion, um deine Antwort zurückzugeben. Das kostenlose Kommandozeilen-Tool ccn läuft auf Mac, Windows und Linux und zeigt auch allein Desktop-Benachrichtigungen an. Mit gekoppelter iPhone- oder Android-App kannst du vom Handy aus einmal erlauben, für die Session erlauben oder ablehnen. Hast du in den letzten 30 Sekunden getippt, wartet nichts aufs Handy und das Terminal fragt wie gewohnt. Das Tool ist unabhängig und nicht von Anthropic. Die Installation findest du auf der ccn-Seite.

07FAQ

Warum feuert mein Notification hook nie?

Meistens, weil du noch an der Tastatur sitzt. Jeder Tastendruck verzögert permission_prompt, und idle_prompt feuert nur, wenn du nach dem Ende von Claude etwa eine Minute nichts getippt hast. Zum Testen löst du einen Permission-Prompt aus, wechselst in ein anderes Fenster und wartest mindestens sechs Sekunden. Feuert er dann immer noch nicht, prüf, ob /hooks ihn auflistet, und schau in die Troubleshooting-Checkliste.

Was ist idle_prompt?

Das ist der Benachrichtigungstyp, den Claude Code sendet, wenn Claude vor etwa 60 Sekunden fertig geworden ist und du seitdem nichts getippt hast. Es ist eine Erinnerung, dass du dran bist, kein sofortiges „Fertig“-Signal. Dafür nimmst du einen Stop-Hook.

Kann ein Notification hook eine Berechtigung erteilen?

Nein. Notification-Hooks haben keine Entscheidungsgewalt, nichts, was sie ausgeben, kann den Prompt beantworten. Zum Erlauben oder Ablehnen nimmst du einen PermissionRequest-Hook, wie im PermissionRequest-Guide beschrieben.

Läuft der Notification hook, wenn ich preferredNotifChannel auf notifications_disabled setze?

Ja. Diese Einstellung ändert nur, wie Claude Code dich selbst benachrichtigt. Das Notification-Event und deine Hooks laufen weiterhin.

Warum bekomme ich zwei Benachrichtigungen?

Die eingebaute Benachrichtigung von Claude Code und dein Hook laufen parallel. In iTerm2, Ghostty oder Kitty siehst du eventuell beide. Schalte eine davon ab, zum Beispiel mit preferredNotifChannel, oder behalte nur den Hook.

Claude Code Notifier Bekomm einen Push aufs Handy, wenn Claude Code fertig ist oder dich braucht, und genehmige, lehne ab oder antworte direkt von dort. Das Kommandozeilentool ccn ist kostenlos für Mac, Windows und Linux.
Für iOS laden Für Android laden ccn installieren

Ähnliche Guides

  • So bekommst du eine Benachrichtigung, wenn Claude Code fertig istNimm einen Stop hook für „fertig“ und einen Notification hook für „braucht Eingabe“. Setups zum Kopieren für Mac, Windows und Linux, plus Alerts aufs Handy.
  • Berechtigungsanfragen per Hook beantworten (PermissionRequest)Wie der PermissionRequest-Hook von Claude Code funktioniert, wie du per Skript erlaubst oder ablehnst und warum Permission-Regeln oft das bessere Werkzeug sind.
  • Der Claude Code Stop hook: etwas ausführen, wenn Claude fertig istWie der Stop hook von Claude Code funktioniert, welchen Input er bekommt, wie du einen Befehl ausführst, wenn Claude fertig ist, und wie du Claude sicher weiterarbeiten lässt.
  • Die eingebauten Benachrichtigungen von Claude Code: Terminal-Bell und preferredNotifChannelWie die eingebauten Hinweise von Claude Code funktionieren, was die einzelnen Werte von preferredNotifChannel bewirken und wie du iTerm2, Apple Terminal, Kitty, Ghostty und tmux einrichtest.
claude-code-notifier

Claude Code Notifier ist eine unabhängige Drittanbieter-Anwendung. Sie steht in keiner Verbindung zu Anthropic, PBC und wird von Anthropic, PBC weder unterstützt noch gesponsert. „Claude“ und „Claude Code“ sind Marken von Anthropic, PBC.

apps iOS-App Android-App ccn für macOS, Windows & Linux Alle Guides
rechtliches Datenschutzerklärung Nutzungsbedingungen Weitere Sprachen © 2026 touchtap. Alle Rechte vorbehalten. TouchTap Ltd ist in England und Wales eingetragen, Registernummer 13942589.