Сповіщення та схвалення Claude Code на телефоні
У Claude Code є хуки: точки, де він запускає вашу команду. Цього досить, щоб зробити сповіщення, коли він просить дозволу чи завершує роботу, і навіть відповідати з телефона. Ось як це працює всередині та як це використовує Wendo.
Що таке хук Claude Code
Хук — це команда, яку Claude Code виконує, коли щось стається: починається сесія, ви надсилаєте промпт, йому потрібен дозвіл, він завершує відповідь. Ви оголошуєте їх у ~/.claude/settings.json, по одній події на ключ, кожна вказує на команду:
{
"hooks": {
"Stop": [
{ "hooks": [{ "type": "command", "command": "~/.wendo/wendo-hook.sh" }] }
]
}
}
Claude Code запускає цю команду й передає їй у стандартному вводі документ JSON з даними події: назвою події, робочою текою, ідентифікатором сесії та, залежно від випадку, інструментом, який він хоче використати. Команда робить із цим що завгодно. Для деяких подій вона також може записати відповідь у стандартний вивід, і саме так Claude Code дізнається про рішення.
Події, які реєструє хук Wendo
Інсталятор додає той самий скрипт до шести подій:
PermissionRequest: Claude Code збирається попросити у вас дозволу.Notification: повідомлення Claude Code, що потребує уваги.Stop: він закінчив відповідь.UserPromptSubmit: ви надіслали промпт, отже він працює.SessionStartіSessionEnd: сесія починається чи закінчується.
Кожна подія зберігається рядком у ~/.wendo/events.jsonl на комп’ютері. Застосунок читає цей файл через SSH з вашим ключем, тож немає ні сервера-посередника, ні акаунта. Те, що ви бачите у Вхідних, береться звідти.
Щоб встановити, достатньо однієї команди:
curl -fsSL https://wendo.lirafy.dev/install.sh | sh
Перш ніж чіпати settings.json, вона зберігає копію як settings.json.bak-wendo, і її можна запускати багаторазово без дублювання записів. Хуки, які у вас уже є, лишаються недоторканими. Параметри та ручне налаштування — на сторінці про сповіщення та схвалення; ширша інструкція, як побудувати все середовище, — у статті як користуватися Claude Code з телефона.
Як працює схвалення
PermissionRequest — єдина подія, де хук лишається й чекає. Коли Claude Code просить дозволу, скрипт записує запит як очікуваний, а Вхідні в застосунку показують рядок із кнопками схвалити чи відхилити. Коли ви торкаєтеся однієї з них, застосунок кладе відповідь у файл на комп’ютері, хук підхоплює її й передає рішення Claude Code.
Очікування триває 90 секунд. Якщо за цей час ви не відповіли, хук нічого не виводить, і Claude Code показує звичайне запитання в терміналі, ніби Wendo немає. Це важливо: якщо телефон сів або зникла мережа, нічого не лишається заблокованим, ви просто повертаєтеся до того, як усе завжди працювало.
Якщо ви відповісте в терміналі раніше, ніж на телефоні, це теж записується — як вирішено локально.
Кілька змінних середовища налаштовують поведінку; їх задають перед командою хука:
WENDO_APPROVAL_TIMEOUT: скільки секунд чекати.timeoutхука вsettings.json(120 у встановленій конфігурації) має бути більшим.WENDO_BLOCKING=0: лише сповіщати, не чекаючи відповіді.WENDO_HOST: назва, під якою застосунок знає комп’ютер, якщо вона відрізняється відhostname -s.
Запитання Claude (AskUserQuestion) і схвалення планів (ExitPlanMode) не блокують. Вони просять вибір, а не «так» чи «ні», тож ви відповідаєте на них у вигляді чату.
Сповіщення із закритим застосунком: ntfy
Поки Wendo відкритий, застосунок читає Вхідні кожні кілька секунд. Коли він закритий, щось має доставити сповіщення на телефон, і це ntfy: простий сервіс push-сповіщень, у який публікують HTTP-запитом.
- Додайте
NTFY_TOPICперед командою хука вsettings.json:
NTFY_TOPIC=a-long-random-topic ~/.wendo/wendo-hook.sh
- Встановіть застосунок ntfy на телефон і підпишіться на той самий topic.
- Введіть topic і у Wendo, у Налаштування › Агенти › Сповіщення.
Щоб згенерувати topic, який ніхто не вгадає:
openssl rand -hex 16
Topic працює як пароль. На публічному сервері ntfy кожен, хто знає назву topic, може читати все, що в нього публікується, і публікувати власні повідомлення, тож не беріть щось на кшталт claude-john. Сповіщення містять проєкт і уривок повідомлення чи команди — досить, щоб ухвалити рішення, і не те, що варто давати читати стороннім.
Якщо не хочете залежати від публічного сервера, NTFY_URL спрямовує хук на ваш власний сервер ntfy. Типове значення — https://ntfy.sh. Дотик до сповіщення відкриває панель tmux, zellij або herdr, де працює агент, якщо ви запускаєте його в одному з них (див. сторінку tmux).
На Android додатково виконується фонова перевірка щонайменше кожні 15 хвилин. До ntfy потрапляють лише сповіщення про дозволи, повідомлення та завершені завдання; хук не надсилає початок і кінець сесії та кожен промпт.
Обмеження
- Наразі лише Claude Code. Хук не реєструється для інших агентів.
- Потрібен
jqна комп’ютері.curlпотрібен лише для ntfy. - Без мультиплексора застосунок не знає, у якій панелі Claude, і не може перенести вас просто туди.
- Безкоштовний тариф містить 5 пробних схвалень із Вхідних; з Pro обмежень немає.
- Wendo ще немає в магазинах: незабаром він з’явиться в App Store і Google Play.