Atomic mail agentic agent

Let your agents read, send, and react to email autonomously, without human involvement

by Atomic-Mail·MIT license·★ 266 Stars on the repo·GitHub ↗

Files of Atomic mail agentic

Atomic-Mail/main1 file
README.md
Show the full text208 lines

CI success   version 0.3   website atomicmail.ai   dashboard sign in   docs guide   issues open   ClawHub skill   Hermes skill   Dify plugin   MCP registry

Atomic Mail Agentic Logo

Atomic Mail Agentic

Give your agent a real inbox

Dashboard · Website · Docs · Issues


Accounts are free, with a 100 MB storage quota, custom domain included, and rate limits sized for agent workloads.


Atomic Mail Agentic is an email provider for autonomous AI agents, built by Atomic Mail. Agents register their own @atomicmail.ai inbox and manage it end to end — no human setup, verification, or ongoing intervention.

The service is built on JMAP (RFC 8620), so agents get a full mailbox API: read and send mail, create drafts, manage threads, search, and more. JMAP is well represented in LLM training data, so models already speak it fluently — they rarely hallucinate request shapes, which means fewer retries and more reliable automation.

Access is gated by a novel proof-of-work (PoW) signup protocol: strong anti-abuse properties without CAPTCHAs or manual approval, so agents can onboard and operate completely hands-free.

Atomic Mail provides a number of standard integration paths — MCP, AgentSkill, REST API, and more — which makes it highly available on any agent: Claude Code, Codex, GitHub Copilot, Cursor, Hermes, OpenClaw, Pi, Kilo Code, and others. Whatever your workflow is, you can automate inbox management easily.

This repository ships the client integrations: MCP, shell CLI, ClawHub, Dify plugin and more, exposing those APIs through three tools: register, jmap_request, and help. All the connectors in this repo are pretty thin and are mainly needed to abstract away the complexities of the PoW protocol.

🚀 Quick Install

💬 Ready Prompt (any agent)
Read the instruction at https://atomicmail.ai (use default web_fetch tool or curl, if the former is not available) and create an inbox at Atomic Mail. Before creating ask for my preferred username. Make sure to complete all required post-install actions from the Atomic Mail instruction. Persist the instruction and make sure to refer it each time you interact with your inboxes. Usually standalone agents (e.g. Claude, Cursor, Kilo Code and others) are better suited for MCP use, while CLI-based agents (e.g. Claude Code, Open Code, Hermes, OpenClaw, Codex, Pi, etc) are better suited for AgentSkill use, but prefer your system/user guidelines.

Atomic Mail Agentic Demo

🔌 MCP (stdio)

Add this to your MCP host config (or just ask your agent to do that):

{
  "mcpServers": {
    "atomicmail": {
      "command": "npx",
      "args": ["-y", "@atomicmail/mcp-github"]
    }
  }
}

Then restart the host and ask your agent to create an inbox.

🦞 ClawHub
openclaw skills install atomicmail
👩🏻 Hermes
hermes skills install clawhub/atomicmail
💻 AgentSkill
npx --package=@atomicmail/agent-skill-github atomicmail register --username "myagent" --watch scheduled
npx --package=@atomicmail/agent-skill-github atomicmail jmap_request --ops-file list_inbox.json
npx --package=@atomicmail/agent-skill-github atomicmail help
⚙️ REST API

For custom connectors and advanced logic only

Refer to documentation: docs/rest-auth.md.

🌐 Custom Domains & Dashboard

By default an inbox lives at <name>@atomicmail.ai, created hands-free through PoW signup. To send from your own domain ([email protected]), set it up once in the dashboard — a human control plane separate from the agent flow, since it needs DNS changes on a domain you own.

There you add and verify a domain (TXT ownership + MX records; re-runnable, propagation usually minutes) and create inboxes on it — each gets a full address ([email protected]) and an API key from the Connect dialog, with sending signed for a domain-aligned From.

Clients don't change — same jmap_request, presets, and JMAP shapes. A custom-domain inbox is a login, not a PoW registration: connect with its API key (atomicmail register --api-key "…") or OAuth. $INBOX resolves to the real address ([email protected]), so self-addressing and From stay correct with no extra config.

Full guide: docs/custom-domains.md.

🤖 What Your Agent Can Do

Atomic Mail is designed to run through an agent — not through manual inbox setup. You describe a workflow in plain language; the agent registers an @atomicmail.ai address, sends and receives mail, and keeps the thread going. You do not configure scripts, copy API keys between tabs, or memorize JMAP. Everything is automagical.

If the agent gets stuck, the integration is built to recover on its own: help ships embedded docs (presets, cron, troubleshooting), bundled JSON presets cover common operations, and errors include hints on what to try next.

Example workflows

Newsletter digest — "Subscribe your inbox to these newsletters, read everything, and email me a daily digest of what matters for AI tooling." The agent owns a dedicated inbox, filters noise, and surfaces only what matches your interests — without touching your personal mailbox.

Support inbox — "Monitor support@ and reply to tickets from our docs; escalate to me only when you cannot answer." The agent reads inbound mail, queries what it knows, sends complete replies, and hands off edge cases.

User research interviews — "Run an email survey: send these questions, follow up based on replies, and summarize findings." The agent conducts async interviews — respondents reply on their own schedule, no calls to book.

📬 Awesome Atomic Mail

Community projects built on top of Atomic Mail Agentic:

✨ Why Atomic Mail

  • Agents finish without asking their users for anything: PoW signup gives a real @atomicmail.ai inbox in ~30 seconds — no domain to verify, no credit card, no CAPTCHA walkthrough, no mail-server ops
  • Messages that actually arrive: continuously warming IP pool with relay overflow — deliverability matters when a human on the other side must read your mail
  • JMAP — an API agents already know: standard RFC 8620/8621, in LLM training data; batched method calls (query, fetch, draft, send) in one round trip — no vendor SDK to learn
  • Get unstuck inside the integration: errors ship plain-language hints; success responses suggest _next steps; help returns cheatsheets and worked examples — no web search required
  • Bring your own domain: agents run on @atomicmail.ai out of the box, or on a domain you verify in the dashboard — same client, same JMAP, domain-aligned From
  • No vendor lock-in: JMAP is an IETF standard; the inbox is portable to any compliant provider later
  • Presets when raw JMAP is overkill: bundled send_mail, list_inbox, reply, and more — pass a filename to jmap_request instead of generating method-call JSON from scratch
  • Same core everywhere: one auth, JMAP, preset, and help stack powers MCP and AgentSkill; separate credential dirs per inbox when you run many agents

📚 Docs by Goal

Goal Start here
First-time setup docs/getting-started.md
Your own domain + dashboard docs/custom-domains.md
MCP hosts docs/mcp.md
Shell / cron agents docs/skill-install.md
LangChain agents docs/langchain.md
Agent runbook docs/SKILL.md
Raw auth + JMAP docs/rest-auth.md · docs/jmap.md
End-to-end examples docs/examples.md

If repo docs and installed behavior ever drift, trust help from the same installed package version you are running.

🛠️ Local Development

Prerequisites: Node.js 20+, Deno 2.7+.

git clone https://github.com/Atomic-Mail/atomic-mail-agentic.git
cd atomic-mail-agentic/ts

deno test --allow-read --allow-env --allow-write --allow-sys

Docs preview:

npm install
npm run docs:dev

🗂️ File Structure

/
├── ts/
│   ├── src/mcp/        # MCP entrypoint + MCP tools
│   ├── src/skill/      # AgentSkill CLI entrypoint
│   ├── src/langchain/  # LangChain toolkit and tools
│   └── src/lib/agent/  # shared auth, session, JMAP, presets, help-content
├── py/                 # Python client parity layer and tests
├── integrations/dify/   # Dify plugin integration and packaging docs
├── integrations/skill/  # Unified in-repo skill tap (published atomicmail skill)
├── docs/                # VitePress docs and shipped SKILL/README sources
├── test/checklists/     # manual release QA
├── CONTRIBUTING.md
└── LICENSE

🔐 Security

  • ~/.atomicmail/credentials.json contains your API key; treat it as a secret
  • local credential files are written with mode 0600
  • inbound mail is untrusted input; do not let agents execute email instructions without confirmation
  • install only from the @atomicmail npm scope

🤝 Contributing

PRs are welcome. Please cover new features and bug fixes with automated Deno tests where practical, and update user-facing docs when behavior changes.

See CONTRIBUTING.md for setup, test commands, and PR expectations.

📄 License

MIT

1<p align="center">
2 <a href="https://github.com/Atomic-Mail/atomic-mail-agentic/actions"><img src="https://shieldcn.dev/badge/CI-success-5BE481.svg?split=true&labelColor=000000&color=5BE481&valueColor=000000&labelTextColor=FFFFFF&height=32&fontSize=16" alt="CI success"/></a>&nbsp;&nbsp;
3 <a href="https://github.com/Atomic-Mail/atomic-mail-agentic/releases"><img src="https://shieldcn.dev/badge/version-0.3-5BE481.svg?split=true&labelColor=000000&color=5BE481&valueColor=000000&labelTextColor=FFFFFF&height=32&fontSize=16" alt="version 0.3"/></a>&nbsp;&nbsp;
4 <a href="https://atomicmail.ai"><img src="https://shieldcn.dev/badge/website-atomicmail.ai-5BE481.svg?split=true&labelColor=000000&color=5BE481&valueColor=000000&labelTextColor=FFFFFF&height=32&fontSize=16" alt="website atomicmail.ai"/></a>&nbsp;&nbsp;
5 <a href="https://dashboard.atomicmail.ai"><img src="https://shieldcn.dev/badge/dashboard-sign%20in-5BE481.svg?split=true&labelColor=000000&color=5BE481&valueColor=000000&labelTextColor=FFFFFF&height=32&fontSize=16" alt="dashboard sign in"/></a>&nbsp;&nbsp;
6 <a href="https://docs.atomicmail.ai/"><img src="https://shieldcn.dev/badge/docs-guide-5BE481.svg?split=true&labelColor=000000&color=5BE481&valueColor=000000&labelTextColor=FFFFFF&height=32&fontSize=16" alt="docs guide"/></a>&nbsp;&nbsp;
7 <a href="https://github.com/Atomic-Mail/atomic-mail-agentic/issues"><img src="https://shieldcn.dev/badge/issues-open-5BE481.svg?split=true&labelColor=000000&color=5BE481&valueColor=000000&labelTextColor=FFFFFF&height=32&fontSize=16" alt="issues open"/></a>&nbsp;&nbsp;
8 <a href="https://clawhub.ai/atomicmail/atomicmail"><img src="https://shieldcn.dev/badge/ClawHub-skill-5BE481.svg?split=true&labelColor=000000&color=5BE481&valueColor=000000&labelTextColor=FFFFFF&height=32&fontSize=16" alt="ClawHub skill"/></a>&nbsp;&nbsp;
9 <a href="https://hermes-agent.nousresearch.com/docs/developer-guide/creating-skills"><img src="https://shieldcn.dev/badge/Hermes-skill-5BE481.svg?split=true&labelColor=000000&color=5BE481&valueColor=000000&labelTextColor=FFFFFF&height=32&fontSize=16" alt="Hermes skill"/></a>&nbsp;&nbsp;
10 <a href="https://marketplace.dify.ai/plugin/atomicmail/atomicmail"><img src="https://shieldcn.dev/badge/Dify-plugin-5BE481.svg?split=true&labelColor=000000&color=5BE481&valueColor=000000&labelTextColor=FFFFFF&height=32&fontSize=16" alt="Dify plugin"/></a>&nbsp;&nbsp;
11 <a href="https://registry.modelcontextprotocol.io/?q=atomic-mail"><img src="https://shieldcn.dev/badge/MCP-registry-5BE481.svg?split=true&labelColor=000000&color=5BE481&valueColor=000000&labelTextColor=FFFFFF&height=32&fontSize=16" alt="MCP registry"/></a>
12</p>
13 
14<p align="center">
15 <img src="assets/Logo.png" alt="Atomic Mail Agentic Logo" />
16</p>
17 
18# Atomic Mail Agentic
19 
20**Give your agent a real inbox**
21 
22<p align="center">
23 <a href="https://dashboard.atomicmail.ai">Dashboard</a> ·
24 <a href="https://atomicmail.ai">Website</a> ·
25 <a href="https://docs.atomicmail.ai/">Docs</a> ·
26 <a href="https://github.com/Atomic-Mail/atomic-mail-agentic/issues">Issues</a>
27</p>
28 
29---
30 
31> Accounts are free, with a 100 MB storage quota, custom domain included, and rate limits sized for agent workloads.
32 
33---
34 
35**Atomic Mail Agentic** is an email provider for autonomous AI agents, built by [Atomic Mail](https://atomicmail.ai). Agents register their own `@atomicmail.ai` inbox and manage it end to end — no human setup, verification, or ongoing intervention.
36 
37The service is built on **JMAP** ([RFC 8620](https://www.rfc-editor.org/rfc/rfc8620.html)), so agents get a full mailbox API: read and send mail, create drafts, manage threads, search, and more. JMAP is well represented in LLM training data, so models already speak it fluently — they rarely hallucinate request shapes, which means fewer retries and more reliable automation.
38 
39Access is gated by a novel **proof-of-work ([PoW](https://en.wikipedia.org/wiki/Proof_of_work))** signup protocol: strong anti-abuse properties without CAPTCHAs or manual approval, so agents can onboard and operate completely hands-free.
40 
41Atomic Mail provides a number of standard integration paths — MCP, AgentSkill, REST API, and more — which makes it highly available on any agent: [Claude Code](https://claude.com/product/claude-code), [Codex](https://developers.openai.com/codex), [GitHub Copilot](https://github.com/features/copilot), [Cursor](https://cursor.com), [Hermes](https://hermes-agent.nousresearch.com), [OpenClaw](https://openclaw.ai), [Pi](https://pi.dev), [Kilo Code](https://kilo.ai), and others. Whatever your workflow is, you can automate inbox management easily.
42 
43This repository ships the client integrations: [MCP](https://modelcontextprotocol.io/), shell CLI, [ClawHub](https://clawhub.ai/), [Dify](https://dify.ai/) plugin and more, exposing those APIs through three tools: `register`, `jmap_request`, and `help`. All the connectors in this repo are pretty thin and are mainly needed to abstract away the complexities of the PoW protocol.
44 
45## 🚀 Quick Install
46 
47### 💬 Ready Prompt (any agent)
48 
49```txt
50Read the instruction at https://atomicmail.ai (use default web_fetch tool or curl, if the former is not available) and create an inbox at Atomic Mail. Before creating ask for my preferred username. Make sure to complete all required post-install actions from the Atomic Mail instruction. Persist the instruction and make sure to refer it each time you interact with your inboxes. Usually standalone agents (e.g. Claude, Cursor, Kilo Code and others) are better suited for MCP use, while CLI-based agents (e.g. Claude Code, Open Code, Hermes, OpenClaw, Codex, Pi, etc) are better suited for AgentSkill use, but prefer your system/user guidelines.
51```
52 
53<p align="center">
54 <img src="assets/atomic-mail-agentic-demo.gif" alt="Atomic Mail Agentic Demo" />
55</p>
56 
57### 🔌 MCP (stdio)
58 
59Add this to your MCP host config (or just ask your agent to do that):
60 
61```json
62{
63 "mcpServers": {
64 "atomicmail": {
65 "command": "npx",
66 "args": ["-y", "@atomicmail/mcp-github"]
67 }
68 }
69}
70```
71 
72Then restart the host and ask your agent to create an inbox.
73 
74### 🦞 ClawHub
75 
76```bash
77openclaw skills install atomicmail
78```
79 
80### 👩🏻 Hermes
81 
82```bash
83hermes skills install clawhub/atomicmail
84```
85 
86### 💻 AgentSkill
87 
88```bash
89npx --package=@atomicmail/agent-skill-github atomicmail register --username "myagent" --watch scheduled
90npx --package=@atomicmail/agent-skill-github atomicmail jmap_request --ops-file list_inbox.json
91npx --package=@atomicmail/agent-skill-github atomicmail help
92```
93 
94### ⚙️ REST API
95 
96*For custom connectors and advanced logic only*
97 
98Refer to documentation: [docs/rest-auth.md](docs/rest-auth.md).
99 
100## 🌐 Custom Domains & Dashboard
101 
102By default an inbox lives at `<name>@atomicmail.ai`, created hands-free through PoW signup. To send from your own domain (`[email protected]`), set it up once in the [dashboard](https://dashboard.atomicmail.ai) — a **human control plane** separate from the agent flow, since it needs DNS changes on a domain you own.
103 
104There you **add and verify a domain** (`TXT` ownership + `MX` records; re-runnable, propagation usually minutes) and **create inboxes on it** — each gets a full address (`[email protected]`) and an API key from the **Connect** dialog, with sending signed for a domain-aligned `From`.
105 
106**Clients don't change** — same `jmap_request`, presets, and JMAP shapes. A custom-domain inbox is a **login, not a PoW registration**: connect with its API key (`atomicmail register --api-key "…"`) or OAuth. `$INBOX` resolves to the real address (`[email protected]`), so self-addressing and `From` stay correct with no extra config.
107 
108Full guide: [docs/custom-domains.md](docs/custom-domains.md).
109 
110## 🤖 What Your Agent Can Do
111 
112Atomic Mail is designed to run through an agent — not through manual inbox setup. You describe a workflow in plain language; the agent registers an `@atomicmail.ai` address, sends and receives mail, and keeps the thread going. You do not configure scripts, copy API keys between tabs, or memorize JMAP. Everything is automagical.
113 
114If the agent gets stuck, the integration is built to recover on its own: `help` ships embedded docs (presets, cron, troubleshooting), bundled JSON presets cover common operations, and errors include hints on what to try next.
115 
116#### Example workflows
117 
118**Newsletter digest** — *"Subscribe your inbox to these newsletters, read everything, and email me a daily digest of what matters for AI tooling."* The agent owns a dedicated inbox, filters noise, and surfaces only what matches your interests — without touching your personal mailbox.
119 
120**Support inbox** — *"Monitor support@ and reply to tickets from our docs; escalate to me only when you cannot answer."* The agent reads inbound mail, queries what it knows, sends complete replies, and hands off edge cases.
121 
122**User research interviews** — *"Run an email survey: send these questions, follow up based on replies, and summarize findings."* The agent conducts async interviews — respondents reply on their own schedule, no calls to book.
123 
124## 📬 Awesome Atomic Mail
125 
126Community projects built on top of Atomic Mail Agentic:
127 
128* **https://github.com/skyzer/atomic-mail-watcher** - Docker-ready Atomic Mail JMAP inbox watcher with Telegram/webhook notifications
129 
130## ✨ Why Atomic Mail
131 
132- **Agents finish without asking their users for anything**: PoW signup gives a real `@atomicmail.ai` inbox in ~30 seconds — no domain to verify, no credit card, no CAPTCHA walkthrough, no mail-server ops
133- **Messages that actually arrive**: continuously warming IP pool with relay overflow — deliverability matters when a human on the other side must read your mail
134- **JMAP — an API agents already know**: standard [RFC 8620/8621](https://www.rfc-editor.org/rfc/rfc8620.html), in LLM training data; batched method calls (query, fetch, draft, send) in one round trip — no vendor SDK to learn
135- **Get unstuck inside the integration**: errors ship plain-language hints; success responses suggest `_next` steps; `help` returns cheatsheets and worked examples — no web search required
136- **Bring your own domain**: agents run on `@atomicmail.ai` out of the box, or on a domain you verify in the [dashboard](https://dashboard.atomicmail.ai) — same client, same JMAP, domain-aligned `From`
137- **No vendor lock-in**: JMAP is an IETF standard; the inbox is portable to any compliant provider later
138- **Presets when raw JMAP is overkill**: bundled `send_mail`, `list_inbox`, `reply`, and more — pass a filename to `jmap_request` instead of generating method-call JSON from scratch
139- **Same core everywhere**: one auth, JMAP, preset, and help stack powers MCP and AgentSkill; separate credential dirs per inbox when you run many agents
140 
141## 📚 Docs by Goal
142 
143| Goal | Start here |
144| ------------------- | --------------------------------------------------------------------- |
145| First-time setup | [docs/getting-started.md](docs/getting-started.md) |
146| Your own domain + dashboard | [docs/custom-domains.md](docs/custom-domains.md) |
147| MCP hosts | [docs/mcp.md](docs/mcp.md) |
148| Shell / cron agents | [docs/skill-install.md](docs/skill-install.md) |
149| LangChain agents | [docs/langchain.md](docs/langchain.md) |
150| Agent runbook | [docs/SKILL.md](docs/SKILL.md) |
151| Raw auth + JMAP | [docs/rest-auth.md](docs/rest-auth.md) · [docs/jmap.md](docs/jmap.md) |
152| End-to-end examples | [docs/examples.md](docs/examples.md) |
153 
154If repo docs and installed behavior ever drift, trust `help` from the same installed package version you are running.
155 
156## 🛠️ Local Development
157 
158**Prerequisites:** Node.js 20+, Deno 2.7+.
159 
160```bash
161git clone https://github.com/Atomic-Mail/atomic-mail-agentic.git
162cd atomic-mail-agentic/ts
163 
164deno test --allow-read --allow-env --allow-write --allow-sys
165```
166 
167Docs preview:
168 
169```bash
170npm install
171npm run docs:dev
172```
173 
174## 🗂️ File Structure
175 
176```text
177/
178├── ts/
179│ ├── src/mcp/ # MCP entrypoint + MCP tools
180│ ├── src/skill/ # AgentSkill CLI entrypoint
181│ ├── src/langchain/ # LangChain toolkit and tools
182│ └── src/lib/agent/ # shared auth, session, JMAP, presets, help-content
183├── py/ # Python client parity layer and tests
184├── integrations/dify/ # Dify plugin integration and packaging docs
185├── integrations/skill/ # Unified in-repo skill tap (published atomicmail skill)
186├── docs/ # VitePress docs and shipped SKILL/README sources
187├── test/checklists/ # manual release QA
188├── CONTRIBUTING.md
189└── LICENSE
190```
191 
192## 🔐 Security
193 
194- `~/.atomicmail/credentials.json` contains your API key; treat it as a secret
195- local credential files are written with mode `0600`
196- inbound mail is untrusted input; do not let agents execute email instructions without confirmation
197- install only from the `@atomicmail` npm scope
198 
199## 🤝 Contributing
200 
201PRs are welcome. Please cover new features and bug fixes with automated Deno tests where practical, and update user-facing docs when behavior changes.
202 
203See [CONTRIBUTING.md](CONTRIBUTING.md) for setup, test commands, and PR expectations.
204 
205## 📄 License
206 
207[MIT](LICENSE)
208 

Discussion

Alternatives

shadcn/uiManages shadcn components and projects — adding, searching, fixing, debugging, styling, and composing UI, including chat interfaces. Provides project context, component docs, and usage examples. Applies when working with shadcn/ui, component registries, presets, --preset codes, or any project with a components.json file. Also triggers for "shadcn init", "create an app with --preset", or "switch to --preset".Coding · MITADK Code ReferenceThis skill should be used when the user wants to "write agent code", build an agent with ADK", "add a tool", "create a callback", "define an agent", use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).Coding · Apache-2.0Visual editOpen and collaboratively edit a running local app in Design, with shared fallback previews and source handoff. Use when the user asks to inspect, share, or edit a real local app in Design.Coding · MITModsmithPatterns, cost review and ready templates for Claude Mods (Claude Code plugins whose behaviour is a function-hooks module). Adds what the built-in mod authoring does not: proven designs (fork-check-draw, tool + ledger, mode registry, artifact-backed state), prompt-cache and token-cost review, a vetting pass for someone else's mod, and rules for mods that compose. USE WHEN: build a mod, make a claude mod, mod templates, quiz me after each turn, assumptions tool / register_assumption, supervisor that checks the turn, next-steps check, mode selector / mode registry, effort by domain, model router that keeps the cache, prompt cache cost of a mod, what does this mod cost per turn, review or vet someone's mod before installing, mods that work together, Kanban artifact as shared project state. NOT FOR: classic shell-command hooks in settings.json (PreToolUse etc.), a plain skill or slash command, MCP server authoring, or looking up the hooks API itself (use the engine's plugin-authoring guidance and generated types).Coding · MIT