claude-code-notifier
как это работает руководства вопросы
◐Русский
English العربية Deutsch Español Français עברית Italiano 日本語 한국어 Nederlands Polski Português (Brasil) Русский Türkçe Tiếng Việt 简体中文 繁體中文
Начать
Все руководства

Не работают уведомления Claude Code? Чек-лист

Обновлено 31 октября 2026 г. · 7 мин чтения
на этой странице 011. Убедитесь, что Claude Code загрузил hook 022. Подтвердите доверие к рабочей папке 033. Убедитесь, что событие срабатывает тогда, когда Вы ожидаете 044. Запустите команду hook вручную 055. Изучите debug-лог 066. Проверьте операционную систему 07Если Вы используете Claude Code Notifier 08FAQ

Когда уведомления Claude Code перестают работать, причина почти всегда одна из четырёх: hook не загружен, hook запускается, но завершается с ошибкой, нужное событие срабатывает не тогда, когда Вы ожидаете, или операционная система скрывает оповещение. Выполните /hooks в Claude Code, чтобы увидеть, что загружено, запустите сессию с claude --debug, чтобы увидеть, что на самом деле сделал каждый hook, а затем проверьте настройки уведомлений на компьютере или телефоне. Если Вы используете Claude Code Notifier, команды ccn doctor и ccn test покрывают большую часть этих проверок.

Чек-лист ниже идёт от самой частой причины к самой редкой. Он подходит для Mac, Windows и Linux.

011. Убедитесь, что Claude Code загрузил hook

Введите /hooks в prompt Claude Code. Это просмотр (только для чтения) всех hooks, загруженных Claude Code, с указанием источника каждого: пользовательские настройки, настройки проекта, локальные настройки, плагин или текущая сессия. Выберите hook, чтобы увидеть точную команду и файл, в котором он определён.

Если Вашего hook нет в списке:

  • Невалидный JSON. Файлы настроек — это строгий JSON. Висячая запятая или комментарий // ломают файл, и при следующем запуске Claude Code сообщит о Settings Error. Выполните claude doctor, чтобы увидеть записи, которые Claude Code отклонил.
  • Файл не в том месте. Личные hooks размещаются в ~/.claude/settings.json (в Windows — %USERPROFILE%\.claude\settings.json). Hooks проекта — в .claude/settings.json внутри проекта. Выполните /status и посмотрите строку Setting sources, чтобы узнать, какие файлы загружены.
  • Неверное имя события. Имена событий чувствительны к регистру: Notification, Stop, PermissionRequest. Неизвестное имя события отображается как Settings Warning и пропускается.
  • Hooks отключены. "disableAllHooks": true в любом файле настроек отключает все hooks. Если /hooks показывает Only hooks from managed settings run here, Ваша организация включила allowManagedHooksOnly, и Ваши собственные hooks запускаться не будут.
  • Изменение не подхватилось. Обычно Claude Code перезагружает настройки сам. Если hook не появился через несколько секунд, перезапустите сессию.

022. Подтвердите доверие к рабочей папке

В интерактивной сессии Claude Code не запускает hooks из любых файлов настроек, включая Ваш ~/.claude/settings.json, пока Вы не подтвердите диалог доверия к папке (workspace trust). Если Вы закрыли этот диалог или находитесь в папке, где ещё ни разу не открывали Claude Code, hooks там работать не будут. Запустите claude в этой папке и подтвердите диалог.

033. Убедитесь, что событие срабатывает тогда, когда Вы ожидаете

Многие «сломанные» уведомления на деле объясняются таймингом. Из справочника по hooks от Anthropic:

HookКогда срабатывает
Notification с permission_promptЗапрос разрешения ожидает около шести секунд, а Вы ничего не вводили. Каждое нажатие клавиши сбрасывает таймер.
Notification с idle_promptПримерно через 60 секунд после того, как Claude закончил, если Вы ничего не вводили и не работает ни один фоновый агент.
StopКаждый раз, когда Claude заканчивает ответ. Не срабатывает при прерывании. При ошибках API вместо него срабатывает StopFailure.
PermissionRequestВ момент, когда Claude Code собирается запросить у Вас разрешение.

Поэтому если Вы тестируете hook Notification, продолжая печатать в terminal, он может так и не сработать. Переключитесь на другое окно и подождите. Чтобы получать оповещение сразу по окончании хода, используйте Stop; подробнее — в руководстве по Stop hook.

Проверьте также режим разрешений. Последние версии Claude Code запускают интерактивные сессии в auto mode, где классификатор одобряет большинство действий без запроса. Нет запроса — нет и уведомления permission_prompt, и hook PermissionRequest не срабатывает. Чтобы протестировать оповещения о разрешениях, нажимайте Shift+Tab, пока в строке состояния не появится manual mode, затем попросите Claude сделать что-то, требующее одобрения. Подробности — в статье о режимах разрешений.

Matchers тоже чувствительны к регистру. Matcher bash для PermissionRequest не совпадёт с инструментом Bash.

044. Запустите команду hook вручную

Скопируйте команду из /hooks и запустите её в terminal с тестовыми входными данными:

echo '{"hook_event_name":"Stop","cwd":"/tmp","last_assistant_message":"done"}' | ./my-hook.sh
echo $?

Типичные ошибки:

  • command not found: укажите абсолютный путь к скрипту или ${CLAUDE_PROJECT_DIR} для скриптов в проекте.
  • Скрипт вообще ничего не делает: сделайте его исполняемым с помощью chmod +x ./my-hook.sh.
  • jq: command not found: установите jq или разбирайте JSON с помощью Python или Node.js.

055. Изучите debug-лог

Запустите Claude Code командой claude --debug. В terminal ничего дополнительного не выводится — лог пишется в ~/.claude/debug/<session-id>.txt. Чтобы задать путь самостоятельно, используйте claude --debug-file /tmp/claude.log и выполните tail -f /tmp/claude.log в другом terminal. Если сессия уже запущена, /debug включит логирование и покажет, где находится лог.

Ищите строки, начинающиеся с Hooks:. В каждой указаны событие, команда, результат (finished with status 0, timed out, failed to start) и время выполнения. Для подробностей о сопоставлении задайте CLAUDE_CODE_DEBUG_LOG_LEVEL=verbose.

Две проблемы видны только здесь:

  • Профиль shell что-то выводит. Если ~/.bashrc или ~/.zshrc выполняет echo, а shell его подгружает, этот текст оказывается перед JSON-выводом Вашего hook, и Claude Code воспринимает вывод как обычный текст. Ищите в логе Hook output does not start with {. Оберните вывод профиля в if [[ $- == *i* ]]; then ... fi, чтобы он выполнялся только в интерактивных shell.
  • Нет terminal для вывода. На Mac и Linux command hooks запускаются без управляющего terminal. Hook, который пытается подать звуковой сигнал или записать escape-коды в /dev/tty, молча завершается неудачей. Используйте вместо этого команду уведомлений рабочего стола или собственную настройку Claude Code preferredNotifChannel, описанную в руководстве по terminal bell.

066. Проверьте операционную систему

Если в debug-логе указано, что hook завершился со статусом 0, а уведомления Вы так и не увидели, значит, его скрыла операционная система. Проверьте, что приложению, которое показывает уведомление, разрешено это делать и что режим «Фокусирование» (Mac), «Не беспокоить» (Windows) или переключатель «Не беспокоить» в Вашем рабочем окружении Linux выключен. В Linux также должен быть запущен демон уведомлений.

Команды для конкретных платформ приведены в руководствах для macOS, Windows и Linux.

07Если Вы используете Claude Code Notifier

Claude Code Notifier — независимый инструмент (не от Anthropic), который устанавливает небольшую программу ccn в качестве hooks Claude Code. Всё сказанное выше по-прежнему актуально, ведь ccn — такой же hook, как и любой другой. Начните с его собственных проверок:

  1. ccn doctor проверяет hooks, учётные данные, подключение к серверу и определение присутствия. Сначала исправьте всё, о чём он сообщит.
  2. ccn test отправляет тестовое уведомление. Если оно пришло, проблема в событии или настройке, а не в самой цепочке доставки.
  3. ccn devices выводит список телефонов, сопряжённых с этим компьютером. Если список пуст, выполните сопряжение заново с помощью ccn pair; подробнее — в руководстве по сопряжению.
  4. ccn config show выводит действующие настройки. Убедитесь, что notify_on_done, notify_on_permission и notify_on_question включены, а quiet_hours не охватывает текущее время. Настройки, изменённые на телефоне, попадают на компьютер после ccn sync.

Некоторые особенности поведения выглядят как сбои, но задуманы так специально:

  • Вы за клавиатурой. Если Вы что-то вводили в последние 30 секунд, ничего не ждёт ответа с телефона и terminal задаёт вопрос как обычно. Если включён quiet_when_present (по умолчанию), телефон ничего не получает, пока Вы в terminal, где запущен Claude, а если Вы активны в другом приложении — получает информационную карточку.
  • Дублирующиеся или пропавшие уведомления на Mac. Не запускайте старое приложение для строки меню Mac и ccn на одном и том же Mac.
  • Долгий перерыв. Если телефон или компьютер не используется 60 дней, сервер удаляет его сопряжение, и его нужно выполнить заново.

На самом телефоне проверьте, что приложению разрешено показывать уведомления и что их не глушит режим «Фокусирование» (iPhone) или «Не беспокоить» (Android). На Android оптимизация батареи может задерживать уведомления некоторых приложений; если они приходят с опозданием, снимите для приложения ограничения в настройках батареи. Если Вы редактировали settings.json вручную, ccn doctor покажет, на месте ли его hooks. ccn upgrade обновляет программу до последней версии.

08FAQ

Почему мой Notification hook срабатывает только иногда?

Типы permission_prompt и idle_prompt срабатывают, когда кажется, что Вас нет на месте. permission_prompt ждёт около шести секунд без ввода, а idle_prompt — около 60 секунд после того, как Claude закончит. Если Вы печатаете, они откладываются. Для мгновенного сигнала используйте PermissionRequest или Stop.

Где находится debug-лог Claude Code?

Запустите claude --debug, и лог будет записан в ~/.claude/debug/<session-id>.txt. Чтобы выбрать другое место, используйте claude --debug-file <path>, а в уже запущенной сессии — /debug.

ccn test работает, а настоящие уведомления не приходят. Почему?

Цепочка доставки в порядке, так что дело в настройках и времени. Проверьте в ccn config show параметры notify_on_* и quiet_hours, помните, что при включённом quiet_when_present ничего не отправляется, пока Вы в terminal, и проверьте режим разрешений в Claude Code.

Claude Code Notifier Получайте push на телефон, когда Claude Code завершает работу или ждёт Вас, и подтверждайте, отклоняйте или отвечайте прямо оттуда. Утилита командной строки ccn бесплатна для Mac, Windows и Linux.
Скачать для iOS Скачать для Android Установить ccn

Похожие руководства

  • Hooks в Claude Code: все события и их назначениеЧто такое hooks в Claude Code, где они задаются в settings.json, как работают matchers, входные данные и коды выхода и для чего нужно каждое событие.
  • Notification hook в Claude Code: когда срабатывает и как использоватьКогда срабатывает Notification hook в Claude Code, что означают permission_prompt и idle_prompt, какие входные данные он получает и почему срабатывает с задержкой.
  • Подключение телефона к Claude Code на Mac, Windows или LinuxПривяжите телефон к Claude Code за минуту: установите ccn, затем отсканируйте QR-код или введите 6-значный код. Инструкция для Mac, Windows и Linux.
  • Тихие часы и «Не беспокоить» для уведомлений Claude CodeОтключите уведомления Claude Code ночью или на встречах: тихие часы в hook, «Фокусирование» и «Не беспокоить» на телефоне и quiet_hours в ccn.
claude-code-notifier

Claude Code Notifier — независимое стороннее приложение. Оно не связано с Anthropic, PBC, не одобрено и не спонсируется ею. «Claude» и «Claude Code» являются товарными знаками Anthropic, PBC.

приложения Приложение для iOS Приложение для Android ccn для macOS, Windows и Linux Все руководства
правовая информация Политика конфиденциальности Условия использования Другие языки © 2026 touchtap. Все права защищены. TouchTap Ltd зарегистрирована в Англии и Уэльсе, регистрационный номер 13942589.