Ради долгих прогонов Claude Code и существует: отдали задачу — и занимаетесь своими делами. Подвох в том, чтобы понять, когда вернуться. Проверяете слишком часто — теряете сэкономленное время. Слишком редко — агент уже давно ждёт разрешения со второй минуты.
На Mac это можно решить тремя способами: от самодельного хука до встроенной функции.
Два события, о которых стоит знать
Каким бы способом вы ни пользовались, узнавать нужно о двух разных моментах:
- Готово. Агент закончил свой ход и ждёт следующего сообщения.
- Нужен ввод. Агент остановился посреди задачи — обычно чтобы спросить разрешение выполнить команду или изменить файл.
Второе важнее. Агент, застрявший на запросе разрешения, вообще не двигается.
Способ 1. Хуки Claude Code
Claude Code умеет выполнять shell-команду при определённых событиях. Два события хуков покрывают оба момента:
Stopсрабатывает, когда Claude закончил отвечать.Notificationсрабатывает, когда Claude нужно ваше внимание: запрос разрешения или долгое ожидание ввода.
Добавьте их в ~/.claude/settings.json (для всех проектов) или в .claude/settings.json конкретного проекта. В примере используется osascript, который идёт в комплекте с macOS:
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Task finished\" with title \"Claude Code\" sound name \"Glass\"'"
}
]
}
],
"Notification": [
{
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Waiting for your input\" with title \"Claude Code\" sound name \"Funk\"'"
}
]
}
]
}
}Перезапустите Claude Code и проверьте на короткой задаче. В первый раз macOS может спросить, разрешить ли «Редактору скриптов» показывать уведомления.
Ограничения этого способа: из уведомления не понять, из какого проекта или терминала оно пришло, клик по нему никуда не ведёт, а для каждого другого агента нужна своя похожая настройка. Актуальный список событий смотрите в документации по хукам Claude Code.
Способ 2. notify в Codex
Codex CLI умеет запускать программу после каждого хода агента. В ~/.codex/config.toml задайте в notify команду; Codex передаст ей JSON с описанием события:
notify = ["osascript", "-e", "display notification \"Codex finished\" with title \"Codex\""]Свежие версии Codex поддерживают и хуки, включая событие Stop; они настраиваются в hooks.json или в таблице [hooks] в config.toml. Параметры меняются от версии к версии, поэтому сверяйтесь с документацией по хукам Codex для своей.
Способ 3. Встроено в Vibe Console
Vibe Console следит за каждым терминалом с агентом — для всех восьми поддерживаемых агентов и без всякой настройки:
- Точка статуса на каждой вкладке показывает, работает агент или простаивает, так что сетку агентов можно прочитать с одного взгляда.
- Когда агент закончил, приложение проигрывает звук (по умолчанию Glass) и ненадолго раскрывает вырез MacBook на этой сессии, показывая, какой это агент и терминал.
- Когда агент остановился и ждёт вас, звучит другой сигнал (по умолчанию Funk), так что «готово» и «застрял» различаются, даже не глядя на экран.
- Оба звука настраиваются, их можно и выключить.
Ещё приложение присылает уведомление macOS, когда расход Claude Code или Codex переходит 80% и 100% окна. Подробнее — в статье о лимитах Claude Code.
Больше всего пользы, когда агентов несколько. См. статью о том, как запускать несколько агентов Claude Code параллельно.
Что выбрать
| Хуки / notify | Vibe Console | |
|---|---|---|
| Стоимость | Бесплатно | Входит в приложение |
| Настройка | Для каждого агента, JSON или TOML | Не нужна |
| Отличает «готово» от «застрял» | Да, двумя хуками | Да, двумя звуками |
| Показывает, какой терминал | Нет | Да, в вырезе |
| Работает для всех восьми агентов | Только для тех, где есть хуки | Да |
Если вы запускаете одну сессию Claude Code за раз, хуков достаточно. Если агентов несколько и проектов несколько, больше всего времени сэкономит рабочее пространство, которое знает, какой терминал какой.
Частые вопросы
Почему не срабатывает хук Claude Code?
Проверьте, что JSON валиден, файл лежит в правильном месте и вы перезапустили Claude Code. Выполните команду osascript в терминале отдельно, чтобы убедиться, что уведомления разрешены.
Можно ли получать уведомления на телефон?
Хуки могут вызывать любую команду, в том числе push-сервис. А ещё Claude Code поддерживает удалённое управление из своего мобильного приложения, так что проверить сессию можно и вдали от рабочего места.
Попробуйте встроенные звуковые сигналы бесплатно 14 дней: скачать Vibe Console.
