Nyzhi can notify you when an agent turn completes — locally (terminal bell, desktop notification) or remotely (webhook, Telegram, Discord, Slack). All channels can be configured at once. Configure in configuration or in config.toml.
Local notifications
Terminal bell
Plays a terminal bell (\a) when a turn finishes. Enabled by default.
[tui.notify]
bell = true
Desktop notifications
Sends a desktop notification via notify-rust. Disabled by default.
[tui.notify]
desktop = true
On macOS, this uses the native notification center. On Linux, it uses libnotify or a compatible notification daemon.
Duration threshold
Notifications only fire if the turn took longer than the threshold. This avoids noisy alerts for quick responses.
[tui.notify]
min_duration_ms = 5000 # default: 5000 (5 seconds)
TUI toggle
Use /notify in the TUI to view and toggle notification settings without editing config.
External notifications
External notifications are sent via HTTP after agent turns complete. Configure them in the [notify] section of config.toml.
Webhook
Send a POST request to any URL:
[notify]
webhook = { url = "https://hooks.example.com/nyzhi" }
The payload is a JSON object with the notification message.
Telegram
Send messages to a Telegram chat via the Bot API:
[notify]
telegram = { bot_token = "123456:ABC-DEF", chat_id = "-1001234567890" }
Setup:
- Create a bot via @BotFather and get the bot token
- Add the bot to your group or channel
- Get the chat ID (use
getUpdatesAPI or a bot like @userinfobot)
Discord
Send messages to a Discord channel via webhook:
[notify]
discord = { webhook_url = "https://discord.com/api/webhooks/123/abc" }
Setup:
- Go to your Discord channel settings
- Under Integrations, create a webhook
- Copy the webhook URL
Slack
Send messages to a Slack channel via webhook:
[notify]
slack = { webhook_url = "https://hooks.slack.com/services/T00/B00/xxx" }
Setup:
- Create a Slack app at api.slack.com/apps
- Enable Incoming Webhooks
- Add a webhook to your workspace and select a channel
- Copy the webhook URL
Multiple channels
You can configure multiple notification channels simultaneously. All configured channels receive the notification:
[notify]
webhook = { url = "https://hooks.example.com/nyzhi" }
telegram = { bot_token = "...", chat_id = "..." }
discord = { webhook_url = "https://..." }
slack = { webhook_url = "https://..." }
Message format
Notification messages include:
- A completion indicator
- The session context (what the agent was working on)
The exact format varies by channel (plain text for Telegram, JSON for webhooks, etc.).