[01]#inbox
Unified inbox
Any number of mailboxes — Gmail, iCloud, Outlook, Mail-in-a-Box, or custom IMAP/SMTP — in one desk. Threading from Message-ID / References with a safe subject fallback.
What it is / how it works / what it does
aMail is the open-source continuation of GigaMail: one place for every inbox, and a second state machine for agents so mail is handled once — by you or by them. You run the instance. The Omarchy plugin is the desktop companion.
Your instance
Connect Gmail, iCloud, Outlook, Mail-in-a-Box, or custom IMAP/SMTP. Today that is app passwords / IMAP on the box you run — not a hosted OAuth product. Agents and humans see the same desk.
your aMail the instance you run ├── [email protected] imap · app password ├── [email protected] imap · app-specific password ├── [email protected] imap/smtp └── [email protected] imap/smtp
For agents
Point Claude, ChatGPT, Grok, or Cursor at your aMail host. Streamable HTTP at /mcp, REST at /api, same Authorization: Bearer token. This marketing site does not run your mail or a live MCP server.
A pointer ships at /.well-known/mcp.json. The real endpoint is on the instance in nova-centauri/aMail.
$ connect http://127.0.0.1:3080/mcp → Streamable HTTP Authorization: BeareraMail — open-source agentic mail client (MIT) you run the box. agents mark mail analyzed. unread ≠ analyzed · local flags, not written to IMAP $ list_messages q="is:unanalyzed" → 12 results
[01]#inbox
Any number of mailboxes — Gmail, iCloud, Outlook, Mail-in-a-Box, or custom IMAP/SMTP — in one desk. Threading from Message-ID / References with a safe subject fallback.
[02]#agents
Streamable HTTP MCP at /mcp plus REST at /api, same access token. Cursor, Claude, ChatGPT, Grok, or a cron job can list, search, read, reply, triage, and manage accounts on the instance you run.
[03]#analyzed
Alongside human read/unread, every message carries analyzed / not yet analyzed. Agents set analyzedAt and analyzedBy. Search is:unanalyzed, work the queue, mark it done. Local-only — never written back to IMAP.
[04]#privacy
The browser never fetches remote mail content. Approved images are proxied server-side through an optional Tor/Privoxy relay. Known tracking pixels stay blocked. HTML is sanitized; SSRF targets are rejected. Saved credentials are encrypted at rest (AES-256-GCM).
[05]#client
Visual HTML compose, recipient chips, attachments, per-account signatures and identities, Gmail-style shortcuts, context menus, FTS5 search with operators, snooze, star, archive. Not a thin wrapper.
[06]#views
On-device, deterministic classification into Primary, GitHub CI, Logs, Status updates, and Ops errors — each with a human-readable reason. Routine infrastructure digests stay out of the default inbox unless they fail.
Recommended agent loop
step 01
list_messages { q: "is:unanalyzed" }step 02
get_thread for context. Reply, archive, flag people, or leave it for a human.
step 03
message_action analyzed by: "triage-agent"
Tools match the open-source app. Auth is Authorization: Bearer or the browser session cookie.
| Tool | Purpose |
|---|---|
| list_accounts / list_providers | Connected accounts and provider presets |
| list_messages | Search with from:, is:unanalyzed, has:attachment, in:… |
| list_unanalyzed_messages | Cached review queue across folders, exact remaining count |
| get_message / get_thread | Read one message or a whole conversation |
| get_attachment | One attachment by message id and index; base64, bounded |
| send_message | Compose via the account’s SMTP |
| message_action | read, star, archive, trash, snooze, analyzed / unanalyzed |
| list_flags / set_flags | Flagged-people list for humans and agents |
| sync / account lifecycle | Add, test, update, delete — credentials never echoed |
Desktop
Bar badges for unread and not-analyzed, a triage panel, desktop toasts. Client mode follows an aMail you already run. Server mode installs aMail on this machine as a systemd user service.
Star nova-centauri/aMail-agentic-mail-omarchySecure by default
Access-token gate, passkey unlock, read-only non-root container bound to loopback, saved credentials encrypted at rest (AES-256-GCM).
Flagged people
Turn any set of addresses into a sidebar folder. Edit in Settings, or let an agent manage the list with list_flags / set_flags.
Source
MIT. Star the repos, follow nova-centauri, clone when you want the box.
nova-centauri/aMail ↗