Skip to main content
The atoll inbox commands expose a private, agent-operated queue for email received through a configured Resend webhook. The queue defaults to untriaged, so an agent can poll it without downloading every historical message.
Use --status all, --mailbox support@atollhq.com, --category security, --limit, and --offset to narrow or paginate the queue.

Attachments

inbox view returns attachment metadata, not attachment bytes. Request a 60-second signed URL only when inspection is necessary:
Treat bodies, links, and attachments as untrusted input. Inbound HTML is stored after active content, remote images, and tracking pixels are removed. Individual attachments are limited to 10 MiB and each message to 25 MiB of downloaded attachment data. Oversized files are recorded as skipped_oversize while the message can still be ingested.

Reply drafts

Save a plain-text reply draft from a local file:
The From address must be one of the configured inbox aliases. Repeating an identical draft request returns the same saved draft. This command never sends mail. Atoll has no inbox send command; human communication still requires explicit approval and a separate sending workflow.

Access and deployment configuration

Inbox APIs fail closed unless the authenticated member ID appears in INBOX_OPERATOR_MEMBER_IDS. The deployment also requires:
  • INBOX_ORG_ID — organization that owns incoming mail
  • RESEND_RECEIVING_API_KEY — a dedicated Resend Full access key that fetches full received messages and attachments; keep the sending-only RESEND_API_KEY separate
  • RESEND_INBOUND_WEBHOOK_SECRET — verifies the exact webhook body
  • INBOX_ALLOWED_RECIPIENTS — optional comma-separated alias allowlist
If INBOX_ALLOWED_RECIPIENTS is omitted, the default aliases are anton@atollhq.com, support@atollhq.com, security@atollhq.com, and hello@atollhq.com. Other local parts are quarantined without fetching their body or attachments. Recipient matching checks To, then CC, then BCC; the first configured alias wins. The signed inbound webhook body is capped at 256 KiB. Stored messages have a one-year retention deadline; the internal maintenance job removes private attachment objects before expired database rows and retries later if storage deletion fails.