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

Claude Code-Push-Benachrichtigungen mit ntfy (selbst gebaut)

Aktualisiert am 31. Oktober 2026 · 6 Min. Lesezeit
Auf dieser Seite 01Schritt 1: Topic wählen und abonnieren 02Schritt 2: Ein Hook-Skript (Mac und Linux) 03Schritt 3: In settings.json einbinden 04Windows (PowerShell) 05Privat halten 06Wo Claude Code Notifier ins Spiel kommt 07FAQ

Für Claude Code-Push-Benachrichtigungen mit ntfy installierst du die ntfy-App auf deinem Handy, abonnierst ein Topic mit einem schwer zu erratenden Namen und legst einen Claude Code-Hook an, der curl -d "message" https://ntfy.sh/your-topic ausführt. Ein Notification-Hook meldet dir, wenn Claude eine Berechtigung braucht oder auf dich wartet, und ein Stop-Hook meldet sich, sobald ein Turn endet. Das Ganze ist kostenlos, dauert etwa zehn Minuten und läuft auf Mac, Windows und Linux.

01Schritt 1: Topic wählen und abonnieren

ntfy braucht keine Registrierung. Ein Topic entsteht, sobald jemand zum ersten Mal darauf veröffentlicht oder es abonniert, und jeder, der den Namen kennt, kann mitlesen. Laut der ntfy-Doku ist das Topic im Grunde ein Passwort – mach es also lang und zufällig, zum Beispiel claude-7f3k9q2xw4mz. Topic-Namen dürfen Buchstaben, Ziffern, Unterstriche und Bindestriche enthalten, maximal 64 Zeichen.

Installiere die ntfy-App (App Store, Google Play oder F-Droid), tippe auf + und abonniere dein Topic auf ntfy.sh.

Teste es im Terminal:

curl -H "Title: Test" -d "Hello from my computer" https://ntfy.sh/claude-7f3k9q2xw4mz

Das Handy sollte innerhalb von ein, zwei Sekunden vibrieren. Unter Windows ist curl.exe ab Windows 10 und 11 dabei und versteht dieselbe Zeile.

02Schritt 2: Ein Hook-Skript (Mac und Linux)

Claude Code übergibt jedem Hook ein JSON-Objekt über die Standardeingabe. Beide Events haben gemeinsame Felder wie cwd und hook_event_name. Notification liefert zusätzlich message und notification_type, Stop liefert last_assistant_message, also den Text von Claudes letzter Antwort. Dieses Skript macht aus beidem eine lesbare Push-Nachricht. Es braucht jq (brew install jq bzw. apt install jq unter Debian und Ubuntu).

Speichere es als ~/.claude/ntfy-notify.sh und führe chmod +x ~/.claude/ntfy-notify.sh aus:

#!/bin/sh
TOPIC_URL="https://ntfy.sh/claude-7f3k9q2xw4mz"

input=$(cat)
event=$(printf '%s' "$input" | jq -r '.hook_event_name')
project=$(basename "$(printf '%s' "$input" | jq -r '.cwd')")

if [ "$event" = "Stop" ]; then
  title="Claude finished: $project"
  body=$(printf '%s' "$input" | jq -r '(.last_assistant_message // "Done") | .[0:300]')
  priority=3
else
  title="Claude needs you: $project"
  body=$(printf '%s' "$input" | jq -r '.message // "Needs your attention"')
  priority=4
fi

curl -s -H "Title: $title" -H "Priority: $priority" -H "Tags: robot" \
  -d "$body" "$TOPIC_URL" > /dev/null
exit 0

Die Priorität reicht von 1 (min) bis 5 (urgent). Tags fügt der Benachrichtigung ein Emoji hinzu; robot zeigt ein Roboter-Gesicht.

03Schritt 3: In settings.json einbinden

Trag die Hooks in ~/.claude/settings.json ein. Wenn die Datei schon ein hooks-Objekt hat, füge die Events dort hinzu, statt es zu ersetzen.

{
  "hooks": {
    "Notification": [
      {
        "matcher": "permission_prompt",
        "hooks": [
          { "type": "command", "command": "~/.claude/ntfy-notify.sh" }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          { "type": "command", "command": "~/.claude/ntfy-notify.sh", "async": true }
        ]
      }
    ]
  }
}

"async": true lässt den Stop-Hook im Hintergrund senden, sodass ein langsames Netz Claude nie ausbremst. Starte eine neue Claude Code-Session, denn Hooks werden beim Sessionstart geladen.

Stop oder idle_prompt?

Stop feuert, sobald Claude fertig ist – auch wenn du gerade an der Tastatur sitzt. Ist dir das zu viel, lass den Stop-Block weg und nimm stattdessen den Matcher permission_prompt|idle_prompt. Laut Anthropic-Doku feuert idle_prompt etwa 60 Sekunden, nachdem Claude fertig ist, und nur, wenn du seitdem nichts getippt hast; permission_prompt feuert, wenn ein Berechtigungs-Prompt etwa sechs Sekunden ohne Tastendruck gewartet hat. Damit hast du gratis einen groben „Nur wenn ich weg bin“-Filter. Der Notification hook-Guide und der Stop hook-Guide erklären alle Felder und Timings.

04Windows (PowerShell)

Unter Windows speicherst du das hier als %USERPROFILE%\.claude\ntfy-notify.ps1. Zusätzlich installieren musst du nichts:

$in = [Console]::In.ReadToEnd() | ConvertFrom-Json
$project = Split-Path $in.cwd -Leaf

if ($in.hook_event_name -eq 'Stop') {
  $title = "Claude finished: $project"
  $body = [string]$in.last_assistant_message
  if ($body.Length -gt 300) { $body = $body.Substring(0, 300) }
  $priority = '3'
} else {
  $title = "Claude needs you: $project"
  $body = [string]$in.message
  $priority = '4'
}

Invoke-RestMethod -Method Post -Uri 'https://ntfy.sh/claude-7f3k9q2xw4mz' `
  -Headers @{ Title = $title; Priority = $priority } `
  -Body ([Text.Encoding]::UTF8.GetBytes($body)) | Out-Null

Verwende dann diesen Hook-Eintrag anstelle der command-Zeilen oben:

{
  "type": "command",
  "shell": "powershell",
  "command": "powershell -NoProfile -ExecutionPolicy Bypass -File \"$HOME\\.claude\\ntfy-notify.ps1\""
}

Wenn du Claude Code in WSL nutzt, nimm stattdessen das Mac-/Linux-Skript; für den Hook ist WSL einfach Linux.

05Privat halten

Alles in der Push-Nachricht läuft über den ntfy-Server, und auf ntfy.sh kann jeder mit dem Topic-Namen mitlesen. Die Stop-Nachricht oben enthält den Anfang von Claudes Antwort, und da können Code oder Dateinamen drinstehen. Drei Möglichkeiten, das abzusichern:

  1. Weniger senden. Ersetze den Stop-Body durch einen festen String wie "Done" und behalte nur den Projektnamen im Titel.
  2. Access-Token nutzen. ntfy akzeptiert bei jedem Publish -H "Authorization: Bearer tk_...". Auf deinem eigenen Server setzt du auth-default-access: "deny-all", legst mit ntfy user add einen User an und erzeugst mit ntfy token add ein Token.
  3. Eigenen Server betreiben. ntfy lässt sich selbst hosten. Für sofortige Zustellung an die iPhone-App empfiehlt die ntfy-Doku upstream-base-url: "https://ntfy.sh". Damit gehen nur eine Message-ID und ein Topic-Hash an ntfy.sh, um das Handy aufzuwecken; die App holt die Nachricht dann von deinem Server.

Läuft Claude Code auf einem Remote-Server, funktioniert derselbe Hook dort unverändert – ntfy passt also gut für Benachrichtigungen über SSH.

06Wo Claude Code Notifier ins Spiel kommt

Für reine Einweg-Benachrichtigungen ist das Setup oben eine vollständige Lösung, und wir wollen es dir nicht ausreden. Es benachrichtigt dich aber nur. Meldet der Push, dass Claude eine Berechtigung braucht, wartet die Session trotzdem, bis du wieder an der Tastatur bist.

ntfy unterstützt Action-Buttons, die einen HTTP-Request senden. Einen Rückkanal könntest du also selbst bauen: ein PermissionRequest-Hook, der die Anfrage veröffentlicht, auf einem zweiten Topic auf eine Antwort wartet und eine Entscheidung zurückgibt. Einige Open-Source-Projekte machen genau das (siehe den Vergleich).

Claude Code Notifier liefert genau diesen Rückkanal fertig mit. Mit gekoppeltem Handy kannst du eine Berechtigung einmal erlauben, für die Session erlauben oder ablehnen, eine Antwort wählen, wenn Claude eine Frage stellt, und nach Abschluss die nächste Anweisung schicken – alles vom Handy aus. Außerdem prüft es deine Anwesenheit: Hast du in den letzten 30 Sekunden getippt, fragt das Terminal wie gewohnt und auf dem Handy wartet nichts. Bist du weg, wartet das Terminal bis zu einem von dir festgelegten Limit auf deine Antwort und hört sofort auf zu warten, sobald du die Tastatur berührst. ccn läuft auf Mac, Windows und Linux; Infos zu den Handy-Apps findest du auf der ccn-Seite und unter Preise.

07FAQ

Ist ntfy für Claude Code-Benachrichtigungen kostenlos?

Zum Veröffentlichen und Abonnieren auf ntfy.sh brauchst du keinen Account, der Server ist für alle offen. ntfy bietet außerdem einen kostenpflichtigen Tarif und lässt sich selbst hosten. Aktuelle Limits findest du auf der ntfy-Website.

Warum feuert mein ntfy-Hook nicht?

Starte nach dem Bearbeiten von settings.json eine neue Claude Code-Session, da Hooks beim Start geladen werden. Führe dann die curl-Testzeile von Hand aus und pipe Beispiel-JSON ins Skript, etwa echo '{"hook_event_name":"Stop","cwd":"/tmp/x"}' | ~/.claude/ntfy-notify.sh. Den Rest deckt die Troubleshooting-Checkliste ab.

Kann ich Claude Code aus einer ntfy-Benachrichtigung heraus antworten?

Mit einem einfachen Publish nicht. Die HTTP-Action-Buttons von ntfy können zwar einen Request senden, aber du brauchst einen Hook, der auf die Antwort wartet und daraus eine Entscheidung macht, die Claude Code versteht.

Bekomme ich für jeden Benachrichtigungstyp einen Push?

Nur für die Matcher, die du angibst. Lass matcher beim Notification-Eintrag weg, um alle Typen zu bekommen, auch Authentifizierungs- und MCP-Dialoge.

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

  • Alle Wege zu Claude Code-Benachrichtigungen im VergleichEingebaute Hinweise, eigene Hooks, ntfy und Chat-Webhooks, Remote Control von Anthropic und Notifier-Apps – verglichen danach, was sie können und was nicht.
  • Claude Code-Benachrichtigungen an Telegram, Slack oder Discord sendenEin Hook-Skript, das Claude Code-Alerts an einen Telegram-Bot, einen Slack-Incoming-Webhook oder einen Discord-Webhook schickt – auf Mac, Windows und Linux.
  • Der Notification hook in Claude Code: wann er feuert und wie du ihn nutztWann der Notification hook von Claude Code feuert, was permission_prompt und idle_prompt bedeuten, welche Eingabe er bekommt und warum er vor dem Auslösen wartet.
  • 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.
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.