Уведомления о завершении агента Cursor
Cursor вызывает хук stop, когда заканчивается агентный цикл. Он передаёт статус completed, aborted или error. Обработчик ниже превращает статус в короткое уведомление и отправляет его через Депешер. Событие описано в документации хуков Cursor.
Подготовьте Депешер
Сначала создайте и подтвердите исходящий канал: Email, Telegram, группу Telegram или Пачку. Затем создайте входящий канал для этого инструмента, свяжите его с выбранным получателем и скопируйте публичный URL. Выполните проверку из статьи «Первое уведомление».
Создайте обработчик
В Python-примере замените DEPESHER_URL адресом своего канала. Для защищённого канала заполните DEPESHER_TOKEN токеном без префикса Bearer; иначе оставьте пустую строку. Нужен Python 3, дополнительных Python-пакетов для HTTP-запроса не требуется.
Сохраните ~/.cursor/notify-depesher.py:
python
import json
import sys
from urllib.request import Request, urlopen
DEPESHER_URL = "https://depesher.ru/w/ВАШ_PUBLIC_ID"
DEPESHER_TOKEN = ""
def send_notification(message):
headers = {"Content-Type": "text/plain"}
if DEPESHER_TOKEN:
headers["Authorization"] = f"Bearer {DEPESHER_TOKEN}"
request = Request(
DEPESHER_URL,
data=message.encode("utf-8"),
headers=headers,
method="POST",
)
with urlopen(request, timeout=15):
pass
event = json.load(sys.stdin)
status = event.get("status", "unknown")
labels = {
"completed": "агент завершил цикл",
"aborted": "работа агента прервана",
"error": "цикл агента завершился ошибкой",
}
message = labels.get(status, f"получен статус {status}")
send_notification(f"Cursor: {message}")Пример пересылает статус; текст диалога в сообщение не включается.
Подключите хук
Добавьте запись в пользовательский файл ~/.cursor/hooks.json, подставив абсолютный путь к скрипту. Существующие хуки сохраните:
json
{
"version": 1,
"hooks": {
"stop": [
{
"command": "python3 /home/user/.cursor/notify-depesher.py"
}
]
}
}Для настройки только одного проекта Cursor также поддерживает .cursor/hooks.json в доверенном проекте. Пользовательский вариант подходит для уведомлений из разных проектов.
Проверьте статусы
В Bash вызовите скрипт с тестовым событием:
bash
printf '%s' '{"status":"completed"}' |
python3 /home/user/.cursor/notify-depesher.pyПовторите проверку со значением error, затем запустите агентную задачу в Cursor. Сравните уведомление с результатом её выполнения.
Если уведомления нет
Когда ручной тест проходит, проверьте путь к Python, расположение hooks.json и загрузку хука в Cursor. Если запрос не проходит и вручную, начните с диагностики Депешера.
Статус completed сообщает о завершении цикла агента. Он не заменяет проверку изменений или тестов проекта.