cc-notifier CLI

Хуки для Claude Code на macOS: уведомление возвращает в прежнее окно терминала, а при простое приходит push на телефон.

  • 113 ★ репозитория
  • Последний коммит
CLI

Расширенный доступ

Почему такой уровень

  • Хуки выполняют команды на вашей машине при каждом событии Claude Code.
  • Hammerspoon получает разрешение специальных возможностей macOS, а Pushover принимает название каталога проекта.
Все причины и проверки

trentmcnitt/cc-notifier

Установка

Работает в

Ручная установка

git clone https://github.com/trentmcnitt/cc-notifier.git
cd cc-notifier
./install.sh

Перед этим ставят Hammerspoon и `terminal-notifier` через `brew`, затем добавляют хуки в `~/.claude/settings.json`.

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Хуки выполняют команды на вашей машине при каждом событии Claude Code.
  • Hammerspoon получает разрешение специальных возможностей macOS, а Pushover принимает название каталога проекта.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

cc-notifier подключается к Claude Code через хуки `SessionStart`, `Stop`, `Notification` и `SessionEnd`. При старте сессии запоминается окно в фокусе, а когда агент закончил задачу или ждет разрешения, сравнивается текущее окно с исходным. Если вы ушли в другое окно, вкладку iTerm2 или сеанс tmux, показывается уведомление macOS. Клик по уведомлению через Hammerspoon возвращает в то же окно, даже на другом рабочем столе, а в iTerm2 и в ту же вкладку. По SSH скрипт проверяет простой терминала и шлет push через Pushover со ссылкой, которая открывает сеанс на телефоне в Blink Shell. Хуки завершаются сразу, а работа идет в фоне. Код целиком состоит из одного файла на Python и обертки на bash.

Для кого. Пользователям Claude Code на macOS, которые параллельно работают в других окнах и не хотят проверять терминал вручную.

Подходит, если

  • Длинная задача идет в терминале, а вы читаете почту или документацию в другом окне.
  • Claude Code остановился на запросе разрешения, и уведомление должно сразу вернуть к нужному окну.
  • Сессия идет на удаленной машине по SSH, а уведомление нужно на телефон.
  • Несколько сессий работают в разных вкладках iTerm2, и надо вернуться в свою.

Не подходит, если

  • Рабочая машина не macOS: локальный режим использует Hammerspoon и уведомления macOS.
  • Claude Code запускают без присмотра по расписанию: для таких запусков хуки отключают переменной `CC_NOTIFIER_DISABLE=1`.
  • Доступ Hammerspoon к специальным возможностям выдавать нежелательно по политике безопасности.

Пример запроса к агенту

Запусти тесты и пиши в терминал только итог, а я пока займусь почтой: пришли уведомление, когда закончишь.

Ограничения

Локальный режим требует macOS, Python 3.9 и новее, Hammerspoon с разрешением в разделе специальных возможностей и `terminal-notifier`. Без разрешения не работают возврат в окно и определение ухода из него. Удаленный режим по SSH работает только с Pushover, которому передаются название каталога и ссылка. Хуки в `~/.claude/settings.json` добавляют вручную, а `init` запоминает окно, которое было в фокусе в момент запуска сессии. По SSH окно не отслеживается.

Как отключить. Выполните `uninstall.sh` из репозитория и удалите хуки из `~/.claude/settings.json`. Для отдельных запусков достаточно `CC_NOTIFIER_DISABLE=1`.

Частые вопросы

Когда cc-notifier показывает уведомление?

Когда Claude Code закончил задачу или ждет разрешения, а вы переключились на другое окно, вкладку iTerm2 или сеанс tmux. Если окно в фокусе, уведомления нет.

Нужен ли Pushover?

На десктопе нет, он только добавляет push при простое. В режиме SSH Pushover обязателен, потому что это единственный канал уведомлений.

Какие хуки прописывать?

`SessionStart` с командой `init`, `Stop` и `Notification` с командой `notify` и `SessionEnd` с командой `cleanup`, все из `$HOME/.cc-notifier/cc-notifier`.

Как включить журнал для отладки?

Добавьте флаг `--debug` к командам хуков: журнал пишется в `~/.cc-notifier/cc-notifier.log`, а уведомления получают пометку отладки.

Можно ли задать свой заголовок уведомления?

Да, переменная `CC_NOTIFIER_TITLE_FORMAT` принимает шаблон вроде `{hostname}: {dir}`.

Обсуждение

Вопросов и отзывов пока нет.

Code-Notify присылает уведомление на рабочий стол, когда Claude Code, Codex или Gemini CLI закончили задачу или ждут вашего ответа

CLIРасширенный доступ291Звезды репозитория

Agent Notifications, плагин оповещений, показывает проект и ветку в сообщениях Claude Code и Codex для параллельных задач.

ПлагинРасширенный доступ823Звезды репозитория

Индикатор в строке меню macOS: показывает, думает ли Claude Code, ждет ли вашего разрешения и сколько идет текущий ответ

ПлагинРасширенный доступ726Звезды репозитория

Звуковые сигналы для хуков кодинг-агентов: старт, ошибка, завершение и даже разные команды Bash звучат по-своему

CLIРасширенный доступ120Звезды репозитория

Локальный голосовой слой для Claude Code и Codex на macOS: когда агент закончил работу или упал, коротко говорит, что случилось

CLIРасширенный доступ218Звезды репозитория
Нужен VPN

Плагин tmux запускает сессию Claude Code во всплывающем окне на каждый проект и показывает статус всех агентов в списке fzf

ПлагинРасширенный доступ403Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйЗвезды репозиторияГлавное отличие
cc-notifier (эта карточка)нет113
Code-Notifyнет291шлет уведомление при завершении задачи; cc-notifier еще возвращает в то же окно и вкладку и отправляет push на телефон
Agent Notificationsнет823плагин подписывает сообщения проектом и веткой; cc-notifier отвечает за уход из окна и возврат в него

Коротко о README

Установка идет в два шага: зависимости через `brew` и `./install.sh` из клонированного репозитория, затем хуки в настройках Claude Code. Есть таблицы флагов и переменных окружения, режим для телефона и раздел по устранению неполадок. Репозиторий проходит CI на Python с 3.9 по 3.14.

Бейдж для README

Сообщить о проблеме

Foxx AIcc-notifier
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.