Notifier System Overview
The notification system has two parts:1
Notifier Plugins
Define notification channels (Slack, Discord, webhooks, etc.)
2
Notification Routing
Route notifications to channels based on priority level
- Determines event priority (
urgent,action,warning,info) - Looks up which notifiers should receive that priority
- Sends the notification to all configured channels
packages/core/src/lifecycle-manager.ts:422-431
Built-in Notifiers
Agent Orchestrator includes 4 built-in notifiers:
Source:
packages/core/src/plugin-registry.ts:43-46
Desktop Notifier
Native OS notifications for local development.Desktop notifier is enabled by default. No additional configuration needed.
- macOS (Notification Center)
- Linux (libnotify)
- Windows (Toast notifications)
Composio Notifier
Integration with Composio platform for team visibility.Composio notifier is included in default notifiers. Remove it if you don’t use Composio:
Slack Notifier
Send notifications to Slack channels via incoming webhooks.Setup
1
Create Incoming Webhook
- Go to https://api.slack.com/messaging/webhooks
- Create a new webhook for your workspace
- Choose a default channel
- Copy the webhook URL
2
Set Environment Variable
~/.zshrc, ~/.bashrc):3
Configure Notifier
4
Add to Routing
Configuration
object
Slack notifier configuration
string
required
Must be
slackstring
required
Slack incoming webhook URL. Use
${SLACK_WEBHOOK_URL} to reference environment variable.string
Default channel for notifications (e.g.,
#agent-updates). Can be overridden per-notification.string
default:"Agent Orchestrator"
Bot username displayed in Slack
Example
packages/plugins/notifier-slack/src/index.ts, examples/multi-project.yaml:45-57
Webhook Notifier
Send notifications to custom HTTP endpoints.Configuration
object
Webhook notifier configuration
string
required
Must be
webhookstring
required
HTTP endpoint URL. Use
${WEBHOOK_URL} to reference environment variable.string
default:"POST"
HTTP method:
POST, PUT, PATCHobject
Custom HTTP headers (e.g., authentication)
Example
Webhook Payload
The webhook receives a JSON payload with event details:packages/core/src/types.ts:747-757
Notification Routing
Route notifications to different channels based on priority level.Priority Levels
array
Urgent priority — Critical issues requiring immediate attention:
- Agent stuck
- Agent needs input (permission prompt, question)
- Agent crashed/exited
- Multiple failed escalations
array
Action priority — Action required but not urgent:
- PR ready to merge (approved + CI green)
- Manual intervention needed
array
Warning priority — Something to be aware of:
- Auto-fix failed (escalated after retries)
- CI failing (after automatic retries exhausted)
- Review comments (after automatic handling failed)
array
Info priority — Informational only:
- All agents complete
- PR merged successfully
- Session summary
packages/core/src/types.ts:705-706
Default Routing
If you don’t specifynotificationRouting, these defaults apply:
packages/core/src/config.ts:99-104
Routing Examples
Desktop-only (local development):Custom Notification Rules
Adjust notification behavior per reaction:packages/core/src/types.ts:774-775
Channel Configuration
Some notifiers support per-notification channel overrides.Slack Channels
Override the default channel:packages/plugins/notifier-slack/src/index.ts:171-184
Complete Example
A production-ready notification configuration:Testing Notifications
Test your notification setup:- Desktop notifications appear (for urgent/action)
- Slack messages arrive in correct channel
- Webhooks receive POST requests with correct payload
Troubleshooting
No Desktop Notifications
macOS: Grant notification permissions:- System Settings → Notifications
- Find Terminal or your terminal app
- Enable “Allow Notifications”
libnotify-bin:
Slack Webhook Fails
Check webhook URL:- Webhook URL expired (recreate in Slack)
- Channel doesn’t exist (check spelling)
- Workspace permissions (ensure app is installed)
Webhook Timeout
Increase timeout (future feature):Missing Notifications
Check routing:defaults.notifiers or explicitly configured:
Next Steps
Reactions
Configure what events trigger notifications
Projects
Set up projects with custom notification rules
