← Back to Skills Marketplace
🔌

Atomic Mail

by Atomic Mail · GitHub ↗ · v0.3.10 · MIT-0
cross-platform ✓ Security Clean
28
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install atomicmail
Description
Read and write email through the Atomic Mail ESP from an AI agent. Handles proof-of-work authentication and JMAP so the agent thinks in JMAP method calls. Us...
README (SKILL.md)

Atomic Mail

Atomic Mail exposes a programmable inbox over JMAP with PoW signup and JWT rotation. This skill ships a single CLI entrypoint with three commands: register, jmap_request, and help — matching the MCP server.

When to use this skill

  • Register a new inbox or log in with an existing API key.
  • Send JMAP batches (inline JSON or preset files).
  • Read built-in documentation (JMAP cheatsheet, presets, troubleshooting) or the package README (atomicmail help --topic readme).

Call atomicmail help early and often — before guessing placeholders, using URNs, or cron setup. Start with help --topic overview, then presets before custom jmap_request calls and cron after register. If installed behavior disagrees with docs elsewhere, trust help from the running package.

Commands

{baseDir}/scripts/atomicmail register --username "myagent"

{baseDir}/scripts/atomicmail jmap_request --ops-file list_inbox.json

Run atomicmail --help or atomicmail \x3Ccommand> --help for flags.

Defaults

  • authUrl: https://auth.atomicmail.ai
  • apiUrl: https://api.atomicmail.ai
  • credentials directory: ~/.atomicmail

Workflow

1. Register (new account)

{baseDir}/scripts/atomicmail register \
  --username "alice"

Writes credentials.json, session.jwt, capability.jwt. Prints JSON including inbox and accountId.

Required next step: schedule an hourly agent job that fetches inbox mail via list_inbox.json (see Hourly inbox cron). Do not cron atomicmail jmap_request alone. Setup is incomplete without the agent job.

Usernames must be 5–21 characters (local-part of your @atomicmail.ai address).

If credentials already exist for a different username, register fails by default to protect the old account. To add another inbox without replacing the current one, pass a separate --credentials-dir (MCP: credentials_dir on register / jmap_request). Use --forced only when you intend to replace credentials in the same directory (after backing it up).

2. Register (existing API key, in case losing the credentials file)

{baseDir}/scripts/atomicmail register \
  --api-key "..."

3. JMAP request

{baseDir}/scripts/atomicmail jmap_request \
  --ops '[["Mailbox/get", {"accountId": "$ACCOUNT_ID"}, "m0"]]'

$ACCOUNT_ID, $INBOX, $INBOX_MAILBOX_ID, $UPLOAD_URL, and $DOWNLOAD_URL resolve from the session/credentials. Other placeholders such as $TO or $SUBJECT require --vars with a JSON object of strings (same substitution applies to --ops and --ops-file).

Preset file:

{baseDir}/scripts/atomicmail jmap_request \
  --ops-file list_inbox.json

With custom placeholders:

{baseDir}/scripts/atomicmail jmap_request \
  --ops-file send_mail.json \
  --vars '{"TO":"[email protected]","SUBJECT":"Hello","BODY":"Hi there"}'

Bundled presets (no local file creation required):

  • send_mail.json ($TO, $SUBJECT, $BODY)
  • send_mail_attachment.json ($TO, $SUBJECT, $BODY, $ATTACHMENT_BASE64, $ATTACHMENT_TYPE, $ATTACHMENT_NAME)
  • send_mail_blob_attachment.json ($TO, $SUBJECT, $BODY; pair with repeatable --attachment PATH for RFC 8620 upload → $ATTACHMENT_0_BLOB_ID, …)
  • list_inbox.json (latest 50; uses $INBOX_MAILBOX_ID) — used by the hourly agent inbox job
  • reply.json ($MAIL_ID, $BODY)

Hourly inbox cron (required)

Registration only creates credentials. Immediately after the first successful register, schedule an hourly job that invokes your AI agent to fetch and triage mail (list_inbox.json inside the agent prompt). You need a conversation where you can reply, forward, or ask follow-ups — not a log file.

Do not cron atomicmail jmap_request alone (no agent). Do not use headless one-shot CLIs (claude -p, pi -p, codex exec) if you want to continue the thread.

Pick a workflow

Your setup Approach
OpenClaw openclaw cron add with --announce
Hermes hermes cron create or /cron with --deliver
Atomic Bot Same as OpenClaw or Hermes
atomic-agent atomic-agent task create --cron
Terminal CLI (Claude, Pi, Cursor, …) OS scheduler + interactive agent launch

Full options, agent prompt, and patterns: atomicmail help --topic cron or MCP help topic cron.

Agent prompt (all workflows)

Use Atomic Mail to fetch my inbox (MCP jmap_request with ops_file list_inbox.json, or atomicmail jmap_request --ops-file list_inbox.json). Summarize new messages, highlight what needs a reply, and stay available — I may ask you to reply, forward, search, or dig into something important.

Built-in cron examples

OpenClawcron docs: isolated session, --announce for delivery.

Hermescron docs: --deliver origin (or telegram, discord, email, …); not --no-agent.

atomic-agentatomic-agent task create --cron "0 * * * *" --message "\x3Cprompt>"

Terminal agents

Start interactively with the prompt: claude "…", pi "…", agent "…", gemini -i "…". Use a wrapper script + crontab, macOS LaunchAgent, or Linux systemd user timer — see help --topic cron for the decision guide.

4. Help

{baseDir}/scripts/atomicmail help
{baseDir}/scripts/atomicmail help --topic jmap_cheatsheet

Security

  • credentials.json holds the API key (mode 0600). Do not commit it.
  • JWT files are bearer secrets — do not log them.

Attachments and blobs

Use send_mail_attachment.json (in-band base64) or send_mail_blob_attachment.json with repeatable --attachment PATH (RFC 8620 upload — same flow as MCP attachments). Rules, limits, and Blob/upload JSON shape: atomicmail help --topic jmap_cheatsheet and Raw JMAP requests.

{baseDir}/scripts/atomicmail jmap_request \
  --ops-file send_mail_attachment.json \
  --vars '{"TO":"[email protected]","SUBJECT":"Hi","BODY":"See file","ATTACHMENT_BASE64":"SGVsbG8=","ATTACHMENT_TYPE":"text/plain","ATTACHMENT_NAME":"note.txt"}'

Overriding defaults

  • Endpoints: --auth-url, --api-url or ATOMIC_MAIL_AUTH_URL, ATOMIC_MAIL_API_URL
  • Credentials path: --credentials-dir or ATOMIC_MAIL_CREDENTIALS_DIR
  • PoW salt: --scrypt-salt or ATOMIC_MAIL_SCRYPT_SALT
Usage Guidance
Install only if you want an AI agent to access an Atomic Mail inbox. Treat ~/.atomicmail as secret storage, avoid syncing or committing it, review recipients and attachments before sending, and create any hourly polling job only if you are comfortable with recurring agent access to your mailbox.
Capability Tags
cryptorequires-oauth-tokenrequires-sensitive-credentials
Capability Assessment
Purpose & Capability
The stated purpose is to register, read, and send Atomic Mail via JMAP; the CLI, presets, and network calls match that email workflow, including attachment support.
Instruction Scope
The skill tells agents to use it only for Atomic Mail account setup and mail operations, but its docs strongly encourage an hourly agent inbox-polling workflow that users should enable deliberately.
Install Mechanism
The package exposes a Node CLI wrapper and declares only a node binary requirement; no postinstall scripts, shell downloads, or automatic cron setup were found.
Credentials
Network access to auth.atomicmail.ai and api.atomicmail.ai, environment overrides, local credential files, and user-specified attachment reads are proportionate for an email/JMAP client and are documented.
Persistence & Privilege
The skill persists credentials.json plus session and capability JWT bearer tokens under ~/.atomicmail with mode 0600 and refreshes JWTs automatically; this is disclosed and purpose-aligned but sensitive.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install atomicmail
  3. After installation, invoke the skill by name or use /atomicmail
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.3.10
Release 0.3.10
Metadata
Slug atomicmail
Version 0.3.10
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Atomic Mail?

Read and write email through the Atomic Mail ESP from an AI agent. Handles proof-of-work authentication and JMAP so the agent thinks in JMAP method calls. Us... It is an AI Agent Skill for Claude Code / OpenClaw, with 28 downloads so far.

How do I install Atomic Mail?

Run "/install atomicmail" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Atomic Mail free?

Yes, Atomic Mail is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Atomic Mail support?

Atomic Mail is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Atomic Mail?

It is built and maintained by Atomic Mail (@atomicmail); the current version is v0.3.10.

💬 Comments