?

Overview

Point rousseau at a dedicated mailbox (triage@example.com). Every inbound message becomes a rousseau session; the agent inspects attached logs / patches / stack traces and replies via SMTP. Ideal for a low-volume support inbox where every message deserves a first-pass response.

Prerequisites

  • A dedicated mailbox with IMAP (port 993, TLS) and SMTP (port 465 with implicit TLS, or 587 with STARTTLS — currently 465).
  • App-passwords for Gmail / Outlook, or a plain password for self-hosted Postfix + Dovecot.
  • Any provider — anthropic recommended because prompt-cache markers cut cost on long email threads.

Config

provider: anthropic

anthropic:
  model: claude-sonnet-4-6
  max_tokens: 4096

agent:
  system_prompt: |
    You reply to inbound support email. Keep replies under 300 words.
    If the request needs human judgment (billing, security, legal),
    say so explicitly and set an "escalate: yes" flag at the top.
  approver:
    mode: pattern
    default: deny
    allow:
      - {tool: read, match: ".*"}
      - {tool: grep, match: ".*"}
    deny:
      - {tool: bash, match: ".*"}

email:
  imap_addr: imap.example.com:993
  imap_username: triage@example.com
  imap_password: "$IMAP_PW"
  smtp_addr: smtp.example.com:465
  smtp_username: triage@example.com
  smtp_password: "$SMTP_PW"
  from: triage@example.com
  mailbox: INBOX
  poll_interval: 60s
  reply_header: ""

bash is denied outright — email triage should never spawn shells.

Launch

export IMAP_PW='' SMTP_PW='' ANTHROPIC_API_KEY='sk-ant-…'
rousseau email

For production, wrap under systemd like the on-call Slack triage recipe.

Verification

  • rousseau doctor reports the provider as anthropic with the key present (masked).
  • Send an email to triage@example.com from another account.
  • Within poll_interval seconds, a reply arrives from triage@example.com.
  • The IMAP mailbox marks the source message as SEEN (verify via a mail client).

Failure modes

  • Duplicate replies — rousseau is not marking messages read. Verify with rousseau doctor and IMAP debug logs. Some servers require explicit UID flags.
  • Bounced replies — SPF / DKIM misconfigured. Sending from triage@example.com requires the domain to authorise your SMTP host.
  • Empty replies — the agent has nothing to say. Look at the source message; short pings ("thanks") should be dropped by a filter, not answered.

Related pages

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