Claude-Code-Benachrichtigungen und Freigaben auf dem Handy
Claude Code hat Hooks: Stellen, an denen es einen Befehl von dir ausführt. Das reicht, um einen Alert zu bauen, wenn es um Erlaubnis bittet oder fertig ist, und sogar, um vom Handy aus zu antworten. Hier steht, wie das unter der Haube funktioniert und wie Wendo es nutzt.
Was ein Claude-Code-Hook ist
Ein Hook ist ein Befehl, den Claude Code ausführt, wenn etwas passiert: Eine Session startet, du schickst einen Prompt, es braucht eine Erlaubnis, es beendet eine Antwort. Du deklarierst sie in ~/.claude/settings.json, ein Ereignis pro Schlüssel, jedes mit einem Befehl:
{
"hooks": {
"Stop": [
{ "hooks": [{ "type": "command", "command": "~/.wendo/wendo-hook.sh" }] }
]
}
}
Claude Code führt diesen Befehl aus und übergibt auf der Standardeingabe ein JSON-Dokument mit den Daten des Ereignisses: den Ereignisnamen, das Arbeitsverzeichnis, die Session-ID und, je nach Fall, das Tool, das es nutzen will. Der Befehl macht damit, was er will. Bei manchen Ereignissen kann er auch eine Antwort auf die Standardausgabe schreiben, und so erfährt Claude Code die Entscheidung.
Die Ereignisse, die der Wendo-Hook einträgt
Der Installer hängt dasselbe Skript an sechs Ereignisse:
PermissionRequest: Claude Code ist dabei, dich um Erlaubnis zu bitten.Notification: ein Hinweis von Claude Code, der Aufmerksamkeit braucht.Stop: es hat seine Antwort beendet.UserPromptSubmit: du hast einen Prompt geschickt, es arbeitet also.SessionStartundSessionEnd: eine Session beginnt oder endet.
Jedes Ereignis wird als Zeile in ~/.wendo/events.jsonl auf dem Rechner gespeichert. Die App liest diese Datei per SSH mit deinem Schlüssel, es gibt also keinen Zwischenserver und kein Konto. Was du im Posteingang siehst, kommt von dort.
Zum Installieren genügt ein Befehl:
curl -fsSL https://wendo.lirafy.dev/install.sh | sh
Bevor es settings.json anfasst, sichert es eine Kopie als settings.json.bak-wendo, und du kannst es beliebig oft ausführen, ohne Einträge zu verdoppeln. Hooks, die du schon hast, bleiben unberührt. Die Optionen und die manuelle Einrichtung stehen auf der Seite zu Alerts und Freigaben; die ausführlichere Anleitung zum Aufbau der ganzen Umgebung steht in Claude Code vom Handy aus nutzen.
So funktioniert eine Freigabe
PermissionRequest ist das einzige Ereignis, bei dem der Hook bleibt und wartet. Bittet Claude Code um Erlaubnis, notiert das Skript die Anfrage als offen, und der Posteingang der App zeigt die Zeile mit Buttons zum Erlauben oder Ablehnen. Tippst du einen an, legt die App die Antwort in einer Datei auf dem Rechner ab, der Hook holt sie ab und gibt die Entscheidung an Claude Code weiter.
Die Wartezeit beträgt 90 Sekunden. Hast du bis dahin nicht geantwortet, gibt der Hook nichts aus, und Claude Code zeigt im Terminal seine normale Abfrage, als wäre Wendo nicht da. Das ist wichtig: Wenn dein Handy ausgeht oder du das Signal verlierst, bleibt nichts blockiert, du fällst einfach auf die gewohnte Arbeitsweise zurück.
Antwortest du im Terminal vor dem Handy, wird auch das festgehalten, als lokal erledigt.
Ein paar Umgebungsvariablen stellen das ein, gesetzt vor dem Hook-Befehl:
WENDO_APPROVAL_TIMEOUT: Sekunden, die gewartet wird. Dastimeoutdes Hooks insettings.json(120 in der installierten Konfiguration) muss größer sein.WENDO_BLOCKING=0: nur benachrichtigen, ohne auf eine Antwort zu warten.WENDO_HOST: der Name, unter dem die App den Rechner kennt, falls er sich vonhostname -sunterscheidet.
Claudes Fragen (AskUserQuestion) und Planfreigaben (ExitPlanMode) blockieren nicht. Sie verlangen eine Auswahl statt eines Ja oder Nein, also beantwortest du sie in der Chat-Ansicht.
Alerts bei geschlossener App: ntfy
Solange Wendo geöffnet ist, liest die App den Posteingang alle paar Sekunden. Bei geschlossener App muss etwas den Alert aufs Handy schieben, und das ist ntfy: ein einfacher Push-Dienst, an den du mit einer HTTP-Anfrage veröffentlichst.
- Setze
NTFY_TOPICvor den Hook-Befehl insettings.json:
NTFY_TOPIC=a-long-random-topic ~/.wendo/wendo-hook.sh
- Installiere die ntfy-App auf dem Handy und abonniere dasselbe Topic.
- Gib das Topic auch in Wendo ein, unter Einstellungen › Agenten › Mitteilungen.
So erzeugst du ein Topic, das niemand errät:
openssl rand -hex 16
Das Topic wirkt wie ein Passwort. Auf dem öffentlichen ntfy-Server kann jeder, der den Namen eines Topics kennt, lesen, was dort veröffentlicht wird, und eigene Nachrichten senden, nimm also nichts wie claude-john. Die Alerts enthalten das Projekt und einen Auszug der Nachricht oder des Befehls, genug zum Entscheiden und nichts, was Fremde lesen sollen.
Wenn du nicht vom öffentlichen Server abhängen willst, richtet NTFY_URL den Hook auf deinen eigenen ntfy-Server. Der Standard ist https://ntfy.sh. Ein Tipp auf einen Alert öffnet das tmux-, zellij- oder herdr-Pane, in dem der Agent läuft, sofern du ihn in einem davon startest (siehe die tmux-Seite).
Unter Android gibt es außerdem eine Prüfung im Hintergrund, mindestens alle 15 Minuten. Nur Alerts zu Berechtigungen, Hinweisen und erledigten Aufgaben gehen an ntfy; der Hook sendet weder Session-Start, Session-Ende noch jeden Prompt.
Grenzen
- Vorerst nur Claude Code. Der Hook wird bei anderen Agenten nicht eingetragen.
- Es braucht
jqauf dem Rechner.curlwird nur für ntfy benötigt. - Ohne Multiplexer weiß die App nicht, in welchem Pane Claude läuft, und kann dich nicht direkt dorthin bringen.
- Der Free-Plan enthält 5 Probe-Freigaben aus dem Posteingang; mit Pro gibt es kein Limit.
- Wendo ist noch nicht in den Stores: Es kommt bald im App Store und bei Google Play.