Overview
Every weekday at 08:30 UK, rousseau greps git log across a set of repositories, produces a three-bullet standup preview, and delivers it as a WhatsApp message to your personal JID. No cloud SaaS, no curl piped through a public bot service.
Prerequisites
- WhatsApp paired to a phone you own (
rousseau whatsappcompleted at least once). - A workspace directory with the repositories you care about, bind-mounted into the daemon.
- Provider that can drive tool use —
claudeclioranthropicrecommended.
Config
provider: claudecli
state:
path: ~/.local/share/rousseau/sessions.db
agent:
max_iterations: 12
approver:
mode: pattern
default: deny
allow:
- {tool: read, match: ".*"}
- {tool: grep, match: ".*"}
- {tool: bash, match: "^git (log|diff|status|shortlog|for-each-ref|rev-parse)( |$)"}
whatsapp:
reply_header: ""
Notes on the approver:
readandgrepare broad because we want the agent to inspect any repo.bashis limited to read-only git subcommands. Nogit push, nogit rebase, no shell.
Register the cron job
rousseau cron add \
--name daily-standup \
--schedule '30 8 * * MON-FRI' \
--prompt 'For each git repository under /workspace, list the last 24h of commits by author. Then produce three bullets: (1) what merged, (2) what stalled, (3) what needs review before standup. Keep it under 800 characters.' \
--deliver-to '447900123456@s.whatsapp.net'
rousseau cron list
Launch
# In a Podman container per the Deployment guide, or bare-metal:
rousseau whatsapp --allow 447900123456@s.whatsapp.net
The cron scheduler starts inside the whatsapp daemon (wiring.startCron). No separate scheduler process.
Verification
-
rousseau cron listshowsdaily-standupwith statuson. - Wait for the next 08:30 fire, or trigger manually with
rousseau chat:rousseau chat --title 'test standup preview' <<'EOF' For each repo under /workspace, list yesterday's commits. Three bullets max. EOF
- Delivery lands on WhatsApp with the prompt's answer.