Claude Code-aviseringar och godkännanden på mobilen
Claude Code har hooks: punkter där den kör ett kommando som du bestämmer. Det räcker för att bygga en avisering när den ber om tillstånd eller blir klar, och till och med för att svara från mobilen. Så här fungerar det under huven och så använder Wendo det.
Vad en Claude Code-hook är
En hook är ett kommando som Claude Code kör när något händer: en session startar, du skickar en prompt, den behöver ett tillstånd, den avslutar ett svar. Du deklarerar dem i ~/.claude/settings.json, en händelse per nyckel, var och en pekar på ett kommando:
{
"hooks": {
"Stop": [
{ "hooks": [{ "type": "command", "command": "~/.wendo/wendo-hook.sh" }] }
]
}
}
Claude Code kör kommandot och skickar ett JSON-dokument på standard in med händelsens data: händelsens namn, arbetskatalogen, sessions-id och, beroende på fall, verktyget den vill använda. Kommandot gör vad det vill med det. För vissa händelser kan det också skriva ett svar på standard ut, och det är så Claude Code får veta beslutet.
Händelserna som Wendos hook registrerar
Installationsprogrammet lägger till samma skript på sex händelser:
PermissionRequest: Claude Code är på väg att be om ditt tillstånd.Notification: ett meddelande från Claude Code som kräver uppmärksamhet.Stop: den har svarat klart.UserPromptSubmit: du skickade en prompt, så den jobbar.SessionStartochSessionEnd: en session börjar eller slutar.
Varje händelse sparas som en rad i ~/.wendo/events.jsonl på datorn. Appen läser filen över SSH med din nyckel, så det finns ingen mellanliggande server och inget konto. Det du ser i Inkorgen kommer därifrån.
För att installera det räcker ett kommando:
curl -fsSL https://wendo.lirafy.dev/install.sh | sh
Innan det rör settings.json sparar det en kopia som settings.json.bak-wendo, och du kan köra det upprepade gånger utan att få dubbletter. Hooks du redan har lämnas orörda. Flaggorna och den manuella konfigurationen finns på sidan om aviseringar och godkännanden; den bredare genomgången för att bygga hela miljön finns i så använder du Claude Code från mobilen.
Så fungerar ett godkännande
PermissionRequest är den enda händelsen där hooken stannar kvar och väntar. När Claude Code ber om tillstånd registrerar skriptet förfrågan som väntande, och appens Inkorg visar raden med knappar för att godkänna eller neka. När du trycker på en lägger appen svaret i en fil på datorn, hooken plockar upp det och lämnar beslutet vidare till Claude Code.
Väntan varar i 90 sekunder. Har du inte svarat då skriver hooken ingenting och Claude Code visar sin vanliga fråga i terminalen, som om Wendo inte fanns. Det är viktigt: om telefonen dör eller du tappar täckning blir ingenting blockerat, du faller bara tillbaka på hur det alltid fungerat.
Svarar du i terminalen före telefonen registreras det också, som löst lokalt.
Några miljövariabler justerar beteendet, satta framför hook-kommandot:
WENDO_APPROVAL_TIMEOUT: antal sekunder att vänta. Hookenstimeoutisettings.json(120 i den installerade konfigurationen) måste vara större.WENDO_BLOCKING=0: bara avisera, utan att vänta på svar.WENDO_HOST: namnet som appen känner datorn under, om det skiljer sig frånhostname -s.
Claudes frågor (AskUserQuestion) och godkännanden av planer (ExitPlanMode) blockerar inte. De ber om ett val snarare än ett ja eller nej, så du svarar på dem i chattvyn.
Aviseringar med appen stängd: ntfy
Medan Wendo är öppet läser appen inkorgen med några sekunders mellanrum. När appen är stängd måste något skicka aviseringen till din telefon, och det är ntfy: en enkel tjänst för pushnotiser som du publicerar till med en HTTP-förfrågan.
- Lägg
NTFY_TOPICframför hook-kommandot isettings.json:
NTFY_TOPIC=a-long-random-topic ~/.wendo/wendo-hook.sh
- Installera ntfy-appen på telefonen och prenumerera på samma topic.
- Skriv in topicen i Wendo också, under Inställningar › Agenter › Aviseringar.
För att skapa en topic som ingen gissar:
openssl rand -hex 16
Topicen fungerar som ett lösenord. På den publika ntfy-servern kan vem som helst som känner till en topics namn läsa vad som publiceras i den och publicera egna meddelanden, så använd inget som claude-john. Aviseringarna innehåller projektet och ett utdrag ur meddelandet eller kommandot, tillräckligt för att fatta ett beslut, och inget du vill att främlingar läser.
Vill du slippa den publika servern pekar NTFY_URL hooken mot din egen ntfy-server. Standardvärdet är https://ntfy.sh. Ett tryck på en avisering öppnar den tmux-, zellij- eller herdr-pane där agenten körs, så länge du kör den i någon av dem (se tmux-sidan).
På Android görs dessutom en kontroll i bakgrunden minst var 15:e minut. Bara aviseringar om behörighet, meddelanden och avslutade uppgifter går till ntfy; hooken pushar inte sessionsstart, sessionsslut eller varje prompt.
Begränsningar
- Än så länge bara Claude Code. Hooken registreras inte för andra agenter.
- Det kräver
jqpå datorn.curlbehövs bara för ntfy. - Utan en multiplexer vet appen inte vilken pane Claude finns i och kan inte ta dig direkt dit.
- Gratisplanen innehåller 5 godkännanden på prov från Inkorgen; med Pro finns ingen gräns.
- Wendo finns inte i butikerna än: det kommer snart till App Store och Google Play.