PrimitiveMail

Self-hosted SMTP inbox for agents.

One command, one VPS, incoming mail on disk as JSON.

What you get

  • One-command install. Fresh Ubuntu VPS to working inbox in a few minutes.
  • Your domain, your IP, or a free *.primitive.email subdomain. Bring DNS or skip it.
  • Mail on disk as canonical JSON. Tailable journal, per-email files, attachments bundled.
  • Pull or push. tail -f emails.jsonl, or HMAC-signed webhooks to your endpoint.
  • Inbound auth built in. SPF, DKIM, DMARC verification. Sender and recipient allowlists.
  • Agent-scriptable installer. --no-prompt, NDJSON progress on stdout, preflight check.

Install

One-liner on a fresh Linux VPS with a public IPv4 and inbound TCP 25 reachable:

curl -fsSL https://get.primitive.dev | bash

Prefer to pin bytes first? The Worker serves a sha256sum-compatible hash:

curl -fsSL https://get.primitive.dev -o install.sh && \
  curl -fsSL https://get.primitive.dev/install.sh.sha256 | sha256sum -c && \
  bash install.sh

The && chain is load-bearing. A mismatched hash aborts before bash install.sh runs.

Verify end-to-end

After install, confirm the full pipeline with one command:

primitive emails test

A real external email from primitive.dev is sent to your claimed subdomain. The CLI waits for it to arrive in the local journal and reports round-trip time.

Agent-shaped

Point your agent at the journal. No MIME parsing, no SMTP ceremony.

primitive emails list            # recent entries
primitive emails read --latest   # full parsed JSON
primitive emails since <seq>     # resume after crash

See AGENTS.md for the journal format, file layout, and webhook contract.