How to Give Your Hermes Agent an Email Address
Hermes is the agent that grows with you. It runs on your own server and learns new skills as it goes, but it still stalls at signup because it can't receive email. Here's how to give the messenger an inbox in under two minutes, with a live demo of the agent reading a verification code and finishing a signup on its own.
The one skill the messenger is missing
Hermes is built to grow. It picks up new skills as it works, runs on hardware you control, and keeps going where a one-shot assistant would stop. But the moment a task touches email (confirming a signup, reading a one-time code, replying to a vendor), it stalls. There's no inbox it owns and no clean way to read what arrives. Fitting the messenger with a real, authenticated mailbox closes that gap, and it takes about two minutes.
Step 1: Create your Robotomail account
Head to robotomail.com and create an account. The signup form is short, four fields, but one of them is doing more work than it looks, so it's worth a walk-through.

- NameA human-readable label for the account, your team or project name is fine. It doesn't affect the agent's address.
- Human emailYour own inbox, used for the verification link, billing receipts, and account notices. This is never the agent's address, keep the two separate.
- Mailbox nameThe important one. Whatever you type here becomes the agent's live address on the shared platform domain, type
hermes-agentand the agent ownshermes-agent@robotomail.co. The field checks availability as you type and turns green when the name is free. - PasswordProtects the dashboard you'll use to manage keys, domains, and billing. Your agent never needs it, agents authenticate with an API key, not your password.
Submit the form and Robotomail sends a verification link to your human email. Click it to confirm the account, then finish signup by starting your free trial. A fresh account must verify before it can send, which keeps the platform's sender reputation clean for everyone.
Step 2: Verify, then copy your API key
After you verify your email and start your free trial, you land on the dashboard. The mailbox itself is created at signup; starting the trial is what activates your API key, so the agent can actually send and receive. This is account management only, there's no inbox UI to click through here, because Hermes does the reading and writing over the API. The dashboard is where you watch activity, manage mailboxes and domains, and create the API keys your agent authenticates with.

ACTIVE, and once your trial starts the API key can send and receive.Now grab your API key. Go to Settings → API keys, click Create key, give it a name your future self will recognize (for example hermes-agent), and Robotomail shows the full key exactly once. It starts with rm_.

Copy that key directly into a secret manager like 1Password, don't leave it in a scratch file, don't hard-code it into the skill, and don't paste it into a chat window. If you lose it, you can't recover it; you just create a new one and delete the old. The key is the agent's entire credential, so treat it like a password.
Step 3: Drop the skill into Hermes
Hermes has no skill store for this, and it doesn't need one. A Robotomail skill is just a markdown file. Tell Hermes to add it from robotomail.com/skill and it drops the file straight into its skills folder, no install step, no client library, no build. Then point it at your API key in 1Password rather than pasting the secret into the chat.
Add the robotomail skill from https://robotomail.com/skill
into your skills folder.
My Robotomail API key is in 1Password under "Robotomail".
Pull it from there when you need it. Don't ask me to paste it
into the chat.Because the skill lives as plain markdown in the agent's own folder, everything stays on the server you control, and a vault reference keeps the secret out of the transcript and logs. The skill describes a small set of tools (send, list, read, and reply) so the agent has everything it needs and nothing it doesn't. See the full agent skill.
Live demo: watch the messenger work
The agent now owns a mailbox, hermes-agent@robotomail.co. From Gmail, send it a verification email, exactly like any signup would. Within seconds Hermes receives a clean JSON event: sender, subject, the parsed body, the code, and the thread. No IMAP, no raw MIME.

{
"event": "message.received",
"timestamp": "2026-06-06T10:00:00.000Z",
"data": {
"message_id": "b2c3d4e5-6789-4abc-def0-222222222222",
"mailbox_id": "a1b2c3d4-5678-4def-abcd-111111111111",
"mailbox_address": "hermes-agent@robotomail.co",
"from": "no-reply@acme.com",
"to": ["hermes-agent@robotomail.co"],
"subject": "Confirm your email",
"body_text": "Your verification code is 481920. It expires in 10 minutes.",
"thread_id": "c3d4e5f6-789a-4bcd-ef01-333333333333",
"received_at": "2026-06-06T10:00:00.000Z"
}
}The agent grabs the code straight out of the body, finishes the signup, then forwards the confirmation to you, one POST to the messages endpoint. Robotomail returns the message ID. Inbound to outbound, fully autonomous.
curl -X POST https://api.robotomail.com/v1/mailboxes/mbx_hermes/messages \
-H "Authorization: Bearer rm_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"to": ["you@company.com"],
"subject": "Signup confirmed ✓",
"bodyText": "Done. I read the code, finished the signup, and the account is active."
}'{
"message": {
"id": "b2c3d4e5-6789-4abc-def0-222222222222",
"direction": "OUTBOUND",
"toAddresses": ["you@company.com"],
"status": "SENT",
"threadId": "c3d4e5f6-789a-4bcd-ef01-333333333333"
}
}Going further
Need more? It's all there. Three of the most common next steps:
- Bring your own custom domainThe platform domain (
@robotomail.co) is great for getting started. When you want the agent to send ashermes@yourcompany.com, add a custom domain, Robotomail generates the DNS records you need (MX, a send MX, SPF, DMARC, and one or more DKIM records) and verifies them as soon as propagation completes. - Fire a webhook on every inbound messageRegister a webhook URL and Robotomail POSTs every inbound message to it within seconds of receipt, signed with HMAC-SHA256 so you can verify it before trusting the payload.
- Subscribe to a live event streamNo public URL to expose on your server? Open a server-sent event (SSE) connection to
GET /v1/eventsand the agent streams inbound events over a single long-lived request, no webhook endpoint required.
curl -X POST https://api.robotomail.com/v1/webhooks \
-H "Authorization: Bearer rm_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-server.com/webhook",
"events": ["message.received"]
}'$ npx @robotomail/cli domain verify acme.com
⏳ checking DNS...
✓ MX propagated
✓ SPF valid
✓ DKIM aligned
✓ DMARC policy ok
✓ acme.com is fully verified.GET /v1/events?events=message.received
Authorization: Bearer rm_your_api_key
Accept: text/event-stream
# Each inbound message arrives as a standard SSE frame:
id: 1717668000000-0000-a3f1
event: message.received
data: {"event":"message.received","timestamp":"2026-06-06T10:00:00.000Z","data":{"message_id":"b2c3d4e5-...","mailbox_address":"hermes-agent@robotomail.co","from":"no-reply@acme.com","subject":"Confirm your email","body_text":"Your verification code is 481920.","received_at":"2026-06-06T10:00:00.000Z"}}The stream replays missed events on reconnect via Last-Event-ID, see the Events (SSE) API docs for the full frame format and reconnect semantics.
For the full picture (the four agent tools, error handling, and a copy-paste signup-to-send walkthrough) see the longer guide for any AI agent and the companion OpenClaw walkthrough.
Frequently asked questions
How long does it take to give a Hermes agent an email address?
Under two minutes. Sign up, verify your email, and start your free trial (about a minute total), create an API key, then tell Hermes to add the Robotomail skill from robotomail.com/skill and point it at the key. The mailbox is created at signup and starting the trial activates your API key, so the agent can send and receive right away, no DNS to configure and no OAuth dance.
Hermes runs on my own server. Does that change anything?
No. Robotomail is the mail layer, Hermes is the brain, and they meet over a plain HTTPS API. Because Hermes is self-hosted, the skill file and your API key live entirely on your machine, nothing about the setup assumes a hosted runtime. The agent just makes authenticated requests to api.robotomail.com whenever it needs to send, list, read, or reply.
What is the agent's email address, and can I choose it?
Yes. The mailbox name you pick during signup becomes the agent's address on the shared platform domain, type "hermes-agent" and the agent owns hermes-agent@robotomail.co. The signup form checks availability live as you type. When you're ready to send from your own brand, add a custom domain and the agent can be hermes@yourcompany.com instead.
Is there a skill store I have to install from?
No, and Hermes doesn't need one. A Robotomail skill is just a markdown file. You tell Hermes to add it from robotomail.com/skill and it drops the file into its skills folder, there's no package to install, no client library to wire up, and no build step. The next time Hermes needs email, it reads the skill and knows how to use the API.
Where do I find my API key, and what does it look like?
Once you've verified your email and started your trial, open the dashboard and go to Settings → API keys → Create key. Robotomail shows the full key exactly once; it starts with the prefix rm_. Copy it straight into a secret manager, it can't be retrieved later, so if you lose it you create a new one and delete the old.
Where should I keep my API key?
In a secret manager like 1Password, not in the chat transcript and not hard-coded in the skill file. Tell Hermes to pull the key from your vault when it needs it. Pasting an rm_ key directly into the conversation leaves it in logs and history; a vault reference keeps it out of plaintext while still letting the agent authenticate.
How fast does the agent see an incoming email?
Inbound mail hits Robotomail over SMTP, is processed via JMAP polling (5 second cadence), stored, and delivered to the agent as a structured event. In the demo in this video the verification email went from Gmail to the agent in seconds, no IMAP, no raw MIME parsing.
What does the agent actually receive?
A clean JSON envelope: sender, subject, the parsed plain-text body, the thread ID, and timestamps. The agent reads the verification code straight out of the body, there is no MIME tree to walk and no mailbox protocol to manage.
Can the agent reply or forward on its own?
Yes. One POST to the mailbox messages endpoint sends mail back out, and Robotomail returns the message ID. Replies automatically carry the correct In-Reply-To and References headers so threads stay intact. Inbound to outbound is fully autonomous, the agent in the demo grabs a code, finishes a signup, and forwards the confirmation without a human in the loop.
How do I stop a Hermes agent from spamming?
Several layers. Each mailbox has a hard daily send cap enforced at the API layer (100/day during the trial, then 500/day on Developer and more on higher plans) plus a monthly cap, so a runaway loop or prompt-injection escalation hits a 429 after a handful of emails, not a million. A separate velocity check throttles sudden bursts at both the mailbox and account level, and Robotomail auto-suspends a mailbox whose bounce or complaint rate crosses safe thresholds. You can also scope each agent's API key to its own mailbox so a leaked key can't reach your other agents, and revoke any key outright when something looks off.
A Hermes agent with its own email address
Real mailboxes, send and receive via API, webhook delivery on every plan. 30-day money-back guarantee.
Create a mailbox