Documentation

Notifications

Get notified when tasks complete — via terminal bell, desktop, webhook, or chat.

Edit on GitHub

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:

  1. Create a bot via @BotFather and get the bot token
  2. Add the bot to your group or channel
  3. Get the chat ID (use getUpdates API 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:

  1. Go to your Discord channel settings
  2. Under Integrations, create a webhook
  3. 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:

  1. Create a Slack app at api.slack.com/apps
  2. Enable Incoming Webhooks
  3. Add a webhook to your workspace and select a channel
  4. 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.).