Free and open source · Bring your own Cloudflare

Mailboxes for your agents, on your domain.

Create one address or many agent mailboxes for support, research, and operations agents. Agents receive, poll, send, and reply through the API or MCP server, while the mail service and message data run in your Cloudflare account.

The software is free. Built only for Cloudflare. No hosted control plane.

A red and black post-office sorting wall routing envelopes through transparent message channels
Every mailbox is an explicit address. Unknown recipients are rejected.

Agent-assisted setup

Your coding agent can install the post office.

Sign in to Cloudflare locally, give your agent the prompt, and approve every live infrastructure or DNS change.

  1. Prepare CloudflarePut your domain on Cloudflare DNS and enable Workers Paid.
  2. Sign in locallynpx wrangler login
  3. Give your agent the promptReplace the placeholders with your domain and intended mailbox names.
Install Agent Post Office from https://github.com/Agent-Post-Office/agentpostoffice-cloudflare for <your-domain>. Create mailboxes <your-mailboxes>. Follow the repository's agentpostoffice-setup skill, use my existing Wrangler login, show me proposed changes, and ask before deployment, DNS/MX changes, Email Routing activation, Email Sending onboarding, or sending real mail. Do not ask me to paste API tokens into chat.
Read the manual setup guide
One red mail intake tray connected by blue routes to ten separate black agent mailbox drawers
One domain-wide intake, many explicit agent mailboxes.

A post office, not an inbox

Create many addresses. Poll one feed.

Active mailboxes receive mail; disabled and unknown addresses do not. Messages stay unprocessed until an agent acknowledges them, while scoped tokens and idempotency keys keep automation boundaries explicit.

Google Workspace + Agent Post Office

Keep one address in Google Workspace. Route the rest to your agents.

Keep your human inbox in Google Workspace while Agent Post Office manages every other address on the domain. Cloudflare Email Routing connects the two.

Configure hybrid routing

example.com routing table

person@example.com Google Workspace
everything else Agent Post Office

Mailbox automation

Reply automatically, even when no agent is running.

Activate one bounded Sieve script on a mailbox. The Worker evaluates it only for new inbound messages, then sends a static plain-text reply through a separate Automation Queue.

  • Match metadataUse the envelope recipient and selected headers, never the message body.
  • Control repeatsSet a 1 to 365 day cooldown for each sender.
  • Opt in deliberatelyNo automation script is installed or activated by default.
Configure automatic replies
support-welcome.sieveplain text
require ["envelope", "vacation"];

if envelope :is "to"
  "support@example.com"
{
  vacation :days 7
    :subject "Message received"
    "Thanks. An agent will review it.";
  stop;
}

Stored as an inactive revision first. It runs only after explicit activation.

Mail moves on your agent’s schedule.

No inbound webhook is required. Agents initiate every API connection.

  1. Receive

    Cloudflare Email Routing invokes the Worker for the exact envelope recipient.

  2. Store and parse

    Raw MIME goes to private R2 before an ID-only task enters Queues.

  3. Poll and acknowledge

    Agents read a unified feed and explicitly mark completed messages processed.

  4. Send or reply

    Cloudflare Email Sending handles transactional mail with scoped authorization.

How it’s built

The Cloudflare stack.

Six Cloudflare services run inside your account. There is no Agent Post Office account, hosted database, or message relay outside your deployment.

Protected by Cloudflare

Cloudflare does not sponsor or endorse Agent Post Office.

Email Routing
Receives inbound SMTP and invokes the Email Worker.
Workers
Runs ingestion, REST endpoints, and Queue consumers.
D1
Stores mailbox state, message indexes, and hashed token metadata.
R2
Keeps raw MIME, complete bodies, and attachments private.
Queues
Parses messages and retries deletion work without carrying MIME.
Email Sending
Sends transactional messages and threaded replies.

Bring your own Cloudflare account

Fewer copies. A boundary you operate.

Agent Post Office does not run a hosted control plane, database, or message relay. Your deployment receives mail directly into the Cloudflare resources you provision, so there is no second Agent Post Office service holding another copy.

Private message storage

Raw MIME, complete bodies, and attachments stay in your private R2 bucket. Downloads force attachment handling, no-store caching, and content sniffing protection.

Credentials stay local

Only token hashes enter D1. Raw bearer tokens remain in the operating-system credential store or a protected process environment, never in URLs.

Hostile content stays untrusted

HTML is not rendered and attachments are not opened automatically. MCP output labels message content as untrusted and exposes attachment metadata before bytes.

Content-minimal logging

Message content is not logged by default. Subjects, attachments, tokens, and raw addresses are also excluded from default application logs.

Open source, in public

Build it with us.

Agent Post Office is Apache 2.0 licensed. Read the implementation, propose changes, and follow the same plan the maintainers use.

Cloudflare requirements

Bring one domain and your Cloudflare account.

Workers Paid account ($5/month) A Workers Paid account is required for sending email to arbitrary recipients through Cloudflare Email Sending.

A domain on Cloudflare DNS Required for Email Routing, mail authentication records, and your agent addresses.

Your own deployment Agent Post Office is free and open source. You install and operate the Worker, D1, R2, and Queues resources.

Developer preview. Live receive, send, reply, authentication, and safe-download paths have been exercised, but do not use Agent Post Office as the only copy of business-critical mail yet.

Run the post office where your mail already lives.

Start with the architecture, inspect the security boundaries, then deploy deliberately.