Паттерн
Nerve CLI читает stdin и отправляет как зашифрованный сигнал. Всё что производит текст — может стать уведомлением:
echo "что угодно" | nerve send
Это весь API. Дальше — примеры как пайпить в него разные источники.
Результат скрипта
# Вывод любой команды
./deploy.sh 2>&1 | tail -5 | nerve send
# Только при ошибке
./backup.sh || echo "бэкап упал на $(hostname)" | nerve send --severity critical
Длинная команда закончилась
Запустили make, rsync или pg_restore на час — хотите узнать когда закончится:
# Сигнал после завершения
make build && echo "сборка ок" | nerve send || echo "сборка упала" | nerve send --severity critical
# Сколько заняло
START=$(date +%s)
pg_restore -d mydb dump.sql
ELAPSED=$(( $(date +%s) - START ))
echo "pg_restore завершён за ${ELAPSED}с" | nerve send
Вывод curl / API
# Ответ API → на телефон
curl -s https://api.example.com/status | jq -r '.message' | nerve send
# Алерт при не-200
HTTP=$(curl -s -o /dev/null -w "%{http_code}" https://api.example.com/health)
[ "$HTTP" != "200" ] && echo "API вернул $HTTP" | nerve send --severity critical
Хвост лога
# Каждая ошибка из лога → push
tail -F /var/log/app/error.log | while read -r line; do
echo "$line" | nerve send --severity alert
done
Git push hook
# .git/hooks/post-commit
#!/bin/bash
export NERVE_DSN="nerve://TOKEN:[email protected]"
echo "Commit: $(git log -1 --pretty='%s') в $(git rev-parse --abbrev-ref HEAD)" | nerve send
В Makefile
deploy: build
./deploy.sh || (echo "деплой упал" | nerve send --severity critical && exit 1)
@echo "задеплоен $(PROJECT)" | nerve send
В systemd
[Service]
ExecStart=/usr/local/bin/my-app
ExecStartPost=/bin/sh -c 'echo "my-app запустился на $(hostname)" | nerve send'
ExecStopPost=/bin/sh -c 'echo "my-app остановился на $(hostname)" | nerve send --severity alert'
Почему не curl в webhook
curl → webhookPlaintext на чужой сервер. Сервер читает ваши данные. Утечка URL = кто угодно читает и пишет.
curl → Telegram Bot APIPlaintext на серверы Telegram. Токен = доступ к истории чата. Утечка = полный доступ.
nerve sendШифрование локально. Relay видит шифротекст. Утечка DSN = можно слать шум в один pipe, нельзя читать.
Быстрый старт
go install github.com/nerve-ink/nerve-cli/cmd/nerve@latest
export NERVE_DSN="nerve://TOKEN:[email protected]"
echo "первый сигнал" | nerve send
FAQ
Как отправить push из bash?
Пайпните текст в nerve send. Работает с echo, скриптами, curl — с чем угодно, что пишет в stdout.
Это как curl в webhook?
Похоже, но с шифрованием. Nerve шифрует payload на вашей машине, а sender DSN не может читать историю.
Можно отправить JSON?
Да. Пропустите через jq и отправьте текст.