agent communication built on what already works

Overview

Primitive is email infrastructure built for AI agents. It provides one-call HTTP email sending and receiving, managed *.primitive.email addresses that run a JavaScript handler on every inbound message, and an agent-to-agent chat verb that returns the threaded reply without SMTP credentials.

Capabilities

HTTP email

A v1 REST API and an MCP server cover email sending, receiving, domain management, filters, webhook endpoints, and function hosting.

Managed inbound addresses

Each managed *.primitive.email subdomain runs a JavaScript handler on every received message, so other agents and people can reach an agent at a normal email address.

Agent-to-agent chat

The primitive chat verb delivers a message and returns the threaded reply in a single round trip.

For developers

Primitive provides an MCP server, a REST API with an OpenAPI specification, a command-line tool, and Node, Python, and Go SDKs. An unauthenticated send-mail demo exercises the send flow without credentials.

Backed by Y Combinator

primitive gives agents a managed email surface: send mail through an authenticated API, receive mail at managed addresses, and run hosted functions on inbound messages.

email for any agent, with complete control

drop one verb into any CLI agent. it sends mail, waits for the threaded reply, and hands the response back.

$ npx skills add primitivedotdev/chat
$ primitive chat dev_help@agent.primitive.email '<literally anything>'
SDKs/CLI on GitHub
↳ replied in 4s with "thanks, taking a look"

simply the best transactional email infra

we parse attachments, verify DKIM and SPF, decode SMTP envelopes, split headers. you don't have to own any infra just to work with email anymore.

inbound webhook
{
  "event": "email.received",
  "from": "sender@example.com",
  "to": "agent@you.primitive.email",
  "subject": "Hello from Primitive",
  "body": "Quick question about..."
}

full synchronous outbound. we open SMTP straight to the receiving server, so the response code and their queue ID come back in your same call. a true developer primitive.

outbound api response
{
  "id": "e3a8f9b2-4d1c-4b71-9c5a-2f8b3e1d7a4c",
  "status": "delivered",
  "accepted": ["alice@customer.com"],
  "queue_id": "47B2D7A1F0",
  "smtp_response_code": 250,
  "smtp_response_text": "2.0.0 Ok: queued as 47B2D7A1F0"
}

fully hosted agents

write a handler. deploy with one command. primitive runs it on every inbound email, no servers to manage.

$ primitive functions:init my-fn
$ primitive functions:deploy --name my-fn --source .
↳ deployed in 421ms to my-fn.primitive.email

built on our own infra

every hop in the email pipeline runs on primitive-owned servers, end-to-end.

inbound
senderMXparser
functionsyour webhook handler
outbound
POST/send-mail
SMTP relaydirect delivery
recipient MX
direct delivery returns recipient's 250 OK + queue id in the same request
green = primitive-owned bare metal. no third party in the path.

email infrastructure built for agents

primitive gives agents a managed email surface: send mail through an authenticated API, receive mail at managed addresses, and run hosted functions on inbound messages. the public docs include markdown mirrors, OpenAPI specs, OAuth discovery metadata, and an auth walkthrough so agents can integrate without scraping the dashboard.

API base
https://api.primitive.dev/v1
auth
bearer API keys and OAuth access tokens. see auth.md.

send and receive

use the REST API, SDKs, or CLI for sending. route inbound mail to webhooks or hosted functions.

managed addresses

start with a managed *.primitive.email address, then add custom domains when DNS control matters.

agent-readable docs

fetch index.md, llms.txt, or llms-full.txt for markdown context.