?

Overview

Nine transport blocks live at the top of Config in internal/config/config.go. Each has its own struct (WhatsAppConfig, SignalConfig, and so on). Every field below cites the concrete struct field.

whatsapp.*

WhatsAppConfig + nested VoiceConfig.

Field Type Default Description Source
whatsapp.reply_header string "💎 *Rousseau Agent*\n\n" (built-in) Prepended to every outbound message. Set to " " to disable. WhatsAppConfig.ReplyHeader
whatsapp.voice.enabled bool false Enable whisper-based transcription. VoiceConfig.Enabled
whatsapp.voice.binary string whisper Whisper CLI. VoiceConfig.Binary
whatsapp.voice.model string empty --model value. VoiceConfig.Model
whatsapp.voice.model_path string empty Explicit .bin path, takes precedence over model. VoiceConfig.ModelPath
whatsapp.voice.language string empty (auto) --language. VoiceConfig.Language
whatsapp.voice.extra_args []string empty Appended to every whisper invocation. VoiceConfig.ExtraArgs

Note: WhatsApp has no allowlist on the config struct — it is a CLI flag only. See rousseau whatsapp.

signal.*

Field Type Default Description Source
signal.binary string signal-cli Path to executable. SignalConfig.Binary
signal.account string empty (required) E.164 phone number. SignalConfig.Account
signal.extra_args []string empty Inserted between -a <acct> and jsonRpc. SignalConfig.ExtraArgs
signal.reply_header string empty Prefix on outbound. SignalConfig.ReplyHeader
signal.allowlist []string empty E.164 numbers permitted. SignalConfig.Allowlist

telegram.*

Field Type Default Description Source
telegram.token string empty (required) Bot token. TelegramConfig.Token
telegram.base_url string https://api.telegram.org Override endpoint. TelegramConfig.BaseURL
telegram.reply_header string empty Prefix on outbound. TelegramConfig.ReplyHeader
telegram.allowlist []string empty Chat ids as strings. TelegramConfig.Allowlist

matrix.*

Field Type Default Description Source
matrix.homeserver_url string empty (required) Homeserver base URL. MatrixConfig.HomeserverURL
matrix.access_token string empty (required) Bot access token. MatrixConfig.AccessToken
matrix.user_id string empty Bot MXID. MatrixConfig.UserID
matrix.reply_header string empty Prefix on outbound. MatrixConfig.ReplyHeader
matrix.allowlist []string empty MXIDs permitted. MatrixConfig.Allowlist

slack.*

Field Type Default Description Source
slack.app_token string empty (required) xapp-*. SlackConfig.AppToken
slack.bot_token string empty (required) xoxb-*. SlackConfig.BotToken
slack.bot_user_id string empty Bot user id for loop prevention. SlackConfig.BotUserID
slack.reply_header string empty Prefix on outbound. SlackConfig.ReplyHeader
slack.allowlist []string empty Slack user IDs permitted. SlackConfig.Allowlist

discord.*

Field Type Default Description Source
discord.token string empty (required) Bot token. DiscordConfig.Token
discord.reply_header string empty Prefix on outbound. DiscordConfig.ReplyHeader
discord.allowlist []string empty User snowflakes permitted. DiscordConfig.Allowlist

email.*

Field Type Default Description Source
email.imap_addr string empty (required) host:port. EmailConfig.IMAPAddr
email.imap_username string empty (required) IMAP user. EmailConfig.IMAPUsername
email.imap_password string empty (required) IMAP password. EmailConfig.IMAPPassword
email.mailbox string INBOX Polled mailbox. EmailConfig.Mailbox
email.poll_interval duration string 30s Cadence. EmailConfig.PollInterval
email.smtp_addr string empty (required) host:port. EmailConfig.SMTPAddr
email.smtp_username string empty (required) SMTP user. EmailConfig.SMTPUsername
email.smtp_password string empty (required) SMTP password. EmailConfig.SMTPPassword
email.from string empty (required) From: address. EmailConfig.From
email.reply_header string empty Prefix on outbound. EmailConfig.ReplyHeader

sms.*

Field Type Default Description Source
sms.provider string empty (required) twilio or vonage. SMSConfig.Provider
sms.from string empty (required) E.164 or MG SID. SMSConfig.From
sms.account_sid string empty Twilio AccountSID. SMSConfig.AccountSID
sms.auth_token string empty Twilio auth token or Vonage secret. SMSConfig.AuthToken
sms.api_key string empty Vonage API key. SMSConfig.APIKey
sms.base_url string empty Override for testing / regional. SMSConfig.BaseURL
sms.reply_header string empty Prefix on outbound. SMSConfig.ReplyHeader

imessage.*

Field Type Default Description Source
imessage.base_url string empty (required) BlueBubbles URL. IMessageConfig.BaseURL
imessage.password string empty (required) BlueBubbles password. IMessageConfig.Password
imessage.chat_guid string empty Outbound target chat GUID. IMessageConfig.ChatGUID
imessage.poll_interval duration string 5s Cadence. IMessageConfig.PollInterval
imessage.reply_header string empty Prefix on outbound. IMessageConfig.ReplyHeader

Full example

whatsapp:
  reply_header: "💎 *Rousseau Agent*\n\n"
  voice:
    enabled: true
    model: base.en

signal:
  account: "+447900123456"
  allowlist:
    - "+447900222222"

telegram:
  token: "7000000000:AAE…"
  allowlist:
    - "123456789"

matrix:
  homeserver_url: "https://matrix.internal.example"
  access_token: "syt_…"
  user_id: "@rousseau-bot:internal.example"
  allowlist:
    - "@alice:internal.example"

slack:
  app_token: "xapp-…"
  bot_token: "xoxb-…"
  bot_user_id: "U0ABC1234"
  allowlist: ["U0XYZ5678"]

discord:
  token: "MTIz…"
  allowlist: ["123456789012345678"]

email:
  imap_addr: imap.example.com:993
  imap_username: bot@example.com
  imap_password: "$IMAP_PW"
  smtp_addr: smtp.example.com:465
  smtp_username: bot@example.com
  smtp_password: "$SMTP_PW"
  from: bot@example.com
  poll_interval: 30s

sms:
  provider: twilio
  from: "+15550001111"
  account_sid: "$TWILIO_SID"
  auth_token: "$TWILIO_TOKEN"

imessage:
  base_url: http://localhost:1234
  password: "$BLUEBUBBLES_PW"
  poll_interval: 5s

Related pages

Type to search 150+ pages. Ranking: BM25 with title/description boost.