Email for agents · self-hosted · $0/mo

Your email domain.Agent-native.Your private data.

Connect an agent to an email address — it files receipts, triages, or replies with context from your notes. On top of a full, self-hosted mail + contacts + calendar core — serverless on Cloudflare, standards-native, ~$0/month.

The bullmoose — a bull moose in stars and stripes, striding forwardBULLMOOSE.CCEST. YOUR DOMAIN$0PER MONTH

Email-native agents

★ ★ ★

Connect an agent to an address and it becomes a worker with an inbox: it replies, files receipts to a spend ledger, triages newsletters, or runs your own pipeline — with scoped, auditable, revocable access. A read-only analytics MCP gives it safe tools over your message log, with zero external credentials.

  • receipts@you.com parses invoices writes to the ledger
  • editor@you.com marks up a draft, replies with a clean version
  • assistant@you.com answers with context from your own mail
See agent recipes →
bullmoose
$ bullmoose admin agent bind receipts@you.com --name ledger
  binding b_9f… (ledger) → receipts@you.com
$ bullmoose watch
 stripe.com   "Invoice #1284"  → filed $42.00 · saas
 you@you.com  "Q3 recap"      → editor replied (draft)

Live in three steps

  1. 1

    Install

    Clone the repo and build the one-binary CLI — no daemons, nothing to babysit.

    npm install
  2. 2

    Deploy

    One idempotent command stands up the workers on Cloudflare's free tier — D1, R2, KV, schemas, secrets, and all.

    node infra/bootstrap.mjs
  3. 3

    Setup

    Point your domain — Email Routing, SES, and DKIM / SPF / DMARC wired for you — then connect clients over JMAP or CardDAV/CalDAV.

    bullmoose admin domain add you.com

Batteries included

★ ★ ★

Every account is an agent — human or AI — and each one comes fully equipped.

mail · calendar · contacts

A full stack, per agent

Every agent — you on Apple Mail, or a bot on the API — gets a complete JMAP mailbox, a DST-correct calendar, and contacts. One standards-native core, no second-class accounts.

token ∩ grant · audited

Share what you choose

Any agent can grant another scoped, revocable, fully-audited access to its mail, calendar, or contacts — family sharing and agent delegation on the very same rails.

MCP · zero credentials

Hand it real tools

Each agent can be granted MCP servers — a read-only analytics MCP over its own message log today, more connectors next — so it acts with real tools and no external secrets.

JMAPmodern mail sync — send, search, push
CardDAV / CalDAVApple contacts & calendar sync
POP3 / SMTP shimlegacy mail clients (via popcorn)
vCard / iCalendarstandard contacts & events
★ ★ ★

Finally, something to do with that spare domain.

★ ★ ★

What's the catch?

$0/month

  • Cloudflare Workers, D1, R2, KV free tier
  • Cloudflare Email Routing (inbound) free
  • AWS SES (outbound) free tier*
  • Your domain not free

*SES free tier — 3,000 emails/mo off-EC2, 62,000 from EC2.

bullmooseFastmailGmailMail-in-a-Box
Own domainpaid
JMAP-native
Email-native agents
Self-hosted (you hold the keys)
Server cost$0$$$ads / data$5–10/mo VPS

Why trust it

Open source

MIT-licensed and readable on GitHub — a compact implementation of the IETF stack, e2e-tested against real clients and real data.

You hold the keys

Your domain, your Cloudflare account, your data. Self-hosted means there's no vendor inbox to trust — and no server to patch.

Auditable by design

Every cross-account access is logged; agent access is scoped and revocable; the credential vault is write-only.

No lock-in

Standards on the wire (JMAP, CardDAV/CalDAV, vCard/iCalendar). Swap any client, or take your local SQLite copy and leave.

Believe you can,
and you’re halfway there.

— Theodore Roosevelt

The whole stack, one command · $0/month

Deploy your own →