notify-done
Отправляет уведомление о завершении задачи при остановке сессии. Полезно для длинных задач в tmux.
Описание
Простым языком
Когда даёшь AI сложную задачу, она может выполняться 30-60 минут. Ты уходишь пить чай или работать над другим — и периодически возвращаешься проверять: закончил или нет? Этот хук сам тебя позовёт когда всё готово.
Настраивается на всплывающее уведомление на компьютере или сообщение в Telegram. AI закончил — ты получил сигнал. Можно спокойно заниматься своими делами.
Что делает
Хук notify-done отправляет уведомление при завершении сессии Claude Code. Когда AI работает в tmux на длинной задаче — ты узнаешь о завершении, даже если переключился на другое окно или вкладку.
Особенно полезен при работе с Agent Teams: задача может выполняться 30-60 минут. Без уведомления — сидишь и периодически проверяешь. С уведомлением — занимаешься своим делом.
Когда срабатывает
Триггер: Stop — при завершении сессии. Условие: всегда. Действие: terminal bell + системное уведомление (macOS/Linux) + опционально Telegram.
Установка
- Добавь конфиг
Stopв.claude/settings.json - Создай
~/.claude/hooks/notify-done.shс правамиchmod +x - Для Telegram: создай бота через @BotFather и добавь токен в
~/.bashrc
Конфиг settings.json
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/notify-done.sh"
}
]
}
]
}
}Скрипт хука
#!/bin/bash
# notify-done.sh — уведомление о завершении сессии
# Stop: при выходе из Claude Code
PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$(pwd)}"
PROJECT_NAME=$(basename "$PROJECT_DIR")
COMMITS=0
if git -C "$PROJECT_DIR" rev-parse --is-inside-work-tree &>/dev/null; then
COMMITS=$(git -C "$PROJECT_DIR" log --oneline --since="3 hours ago" 2>/dev/null | wc -l | tr -d ' ')
fi
MSG="Проект: $PROJECT_NAME | Коммитов: $COMMITS"
printf "a"
if command -v osascript &>/dev/null; then
osascript -e "display notification "$MSG" with title "Claude Code завершил" sound name "Glass""
fi
if command -v notify-send &>/dev/null; then
notify-send "Claude Code завершил" "$MSG" --icon=terminal --urgency=normal
fi
if [ -n "$TELEGRAM_BOT_TOKEN" ] && [ -n "$TELEGRAM_CHAT_ID" ]; then
curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" -d "chat_id=${TELEGRAM_CHAT_ID}" -d "text=Claude Code завершил%0A${MSG}" --max-time 5 >/dev/null 2>&1
fi
exit 0Примеры работы
Что пропускает
- Промежуточные остановки — только финальный Stop
- Уведомления в headless-режиме без дисплея
- Telegram — только если переменные окружения настроены
Что отправляет
- macOS: нативное уведомление со звуком Glass и именем проекта
- Linux:
notify-sendс иконкой терминала - Terminal: bell-сигнал для tmux и screen
- Telegram: текстовое сообщение если бот настроен
Настройка под себя
- Добавь Slack webhook через curl POST-запрос
- Добавь Discord webhook аналогично Telegram
- Настрой разные звуки для успеха и ошибки через osascript
- Добавь
CLAUDE_NOTIFY=0для отключения уведомлений в конкретной сессии
Лучший способ быть продуктивным — не сидеть и ждать AI. notify-done решает эту проблему одним хуком.
> Пока нет комментариев
Связанный контент
Похожие инструменты
/bug-fix
Quick Fix mode: определи баг -> исправь -> проверь -> коммить. Без brainstorm и планирования.
Открыть →/ship
Полный Feature pipeline: brainstorm -> план -> одобрение -> реализация -> тесты -> коммит.
Открыть →/done
Финализация задачи: AI_NOTES, cost-tracker, QA-проверки. Фиксирует что сделано и запускает финальный ревью.
Открыть →/end
Завершение сессии с сохранением прогресса. Обновляет CLAUDE.md, фиксирует незакоммиченные изменения.
Открыть →