?

Command tree

Every command surfaces its help via rousseau <cmd> --help. This page is the tabulated summary.

Command Description
chat Open the interactive Bubble Tea TUI.
whatsapp Run the WhatsApp bridge (whatsmeow).
signal Run the Signal bridge (signal-cli JSON-RPC).
telegram Run the Telegram Bot API long-poller.
matrix Run the Matrix client-server bridge.
slack Run the Slack Socket Mode bridge.
discord Run the Discord Gateway bridge.
sms Send-only SMS via Twilio or Vonage.
imessage BlueBubbles-backed iMessage bridge.
email IMAP inbound + SMTP outbound bridge.
mcp Start the MCP JSON-RPC 2.0 server on stdio.
cron add Add a scheduled prompt.
cron list List every scheduled job.
cron remove Delete a scheduled job.
cron enable Enable a disabled scheduled job.
cron disable Disable an enabled scheduled job.
session list List sessions in the store, newest first.
session search FTS5 search across every session's message content.
session show Print a session's message history.
session delete Delete a session.
skills list List discovered skills from skills_dir.
skills show Print a skill's YAML front-matter and body.
skills lint Validate skills for schema conformance.
doctor Diagnose the local installation. Prints a report.
status Print daemon status.
init Write a default config to ~/.config/rousseau/.
version Print version, commit, and build date.

Global flags

Every command accepts these:

Flag Type Config key Notes
--config string Load configuration from this file. Default: $XDG_CONFIG_HOME/rousseau/config.yaml.
--help, -h bool Print help for the current command.

Per-transport flags

rousseau whatsapp

Flag Type Config key Notes
--store string Path to the whatsmeow device store. Default $XDG_DATA_HOME/rousseau/whatsapp.db.
--allow []string whatsapp.allowlist Restrict inbound to these JIDs. Repeatable.

rousseau slack

Flag Type Config key
--app-token string slack.app_token
--bot-token string slack.bot_token
--bot-user-id string slack.bot_user_id
--allow []string slack.allowlist

rousseau discord

Flag Type Config key
--token string discord.token
--allow []string discord.allowlist

rousseau telegram

Flag Type Config key
--token string telegram.token
--allow []string telegram.allowlist

rousseau matrix

Flag Type Config key
--homeserver-url string matrix.homeserver_url
--access-token string matrix.access_token
--user-id string matrix.user_id
--allow []string matrix.allowlist

rousseau signal

Flag Type Config key
--account string signal.account
--binary string signal.binary
--allow []string signal.allowlist

rousseau email

Flag Type Config key
--imap-addr string email.imap_addr
--imap-username string email.imap_username
--imap-password string email.imap_password
--smtp-addr string email.smtp_addr
--smtp-username string email.smtp_username
--smtp-password string email.smtp_password
--from string email.from
--mailbox string email.mailbox
--poll-interval string email.poll_interval

rousseau sms

Flag Type Config key
--provider string sms.provider
--from string sms.from
--to string (positional)

rousseau imessage

Flag Type Config key
--base-url string imessage.base_url
--password string imessage.password
--chat-guid string imessage.chat_guid

Exit codes

Code Meaning
0 Clean exit — command completed. Not typical for long-running daemons (they usually terminate on signal).
1 Any error surfaced from Execute. See Reference: Exit codes for the classification.

Precedence

Config values are resolved in the order flag > env > file > default (see config.Load in internal/config/config.go). Env vars are prefixed ROUSSEAU_ with dots replaced by underscores — e.g. ROUSSEAU_ANTHROPIC_MODEL overrides anthropic.model. The bare ANTHROPIC_API_KEY env var is also honoured (special-cased in config.Load).

Troubleshooting

unknown flag: --allow on rousseau chat

--allow is transport-scoped. chat has no allowlist because there is no ingress. Use rousseau whatsapp --allow … instead.

Flag order matters for repeatable flags

--allow A --allow B is two values, but --allow=A,B is one value that happens to contain a comma. Prefer separate flags.

Env override not picked up

Rousseau reads env at start only. Restart the daemon after changing env vars, or use --config to force a reload.

flag provided but not defined

Cobra rejects unknown flags. If you copy a flag from a newer version, check rousseau <cmd> --help for the current spelling.

Related pages

Further reading

  • internal/cli/root.go — Cobra command tree.
  • internal/cli/*.go — one file per subcommand.
  • internal/config/config.goLoad and default resolution.

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