aMail_

What it is / how it works / what it does

A mail client that agents can actually finish.

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

Many mailboxes. One desk. You hold the keys.

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.

accounts · tree
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

Talk to aMail from your agent

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.

first connect
$ connect http://127.0.0.1:3080/mcp
→ Streamable HTTP  Authorization: Bearer 

  aMail — 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

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.

[02]#agents

One endpoint for 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

Analyzed flags

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

Private by default

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

A real mail 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

Explainable smart 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

Ask, act, mark analyzed.

  1. step 01

    List the unanalyzed

    list_messages { q: "is:unanalyzed" }
  2. step 02

    Read and act

    get_thread for context. Reply, archive, flag people, or leave it for a human.

  3. step 03

    Close the loop

    message_action analyzed by: "triage-agent"
mcp tools

MCP tools

Tools match the open-source app. Auth is Authorization: Bearer or the browser session cookie.

ToolPurpose
list_accounts / list_providersConnected accounts and provider presets
list_messagesSearch with from:, is:unanalyzed, has:attachment, in:…
list_unanalyzed_messagesCached review queue across folders, exact remaining count
get_message / get_threadRead one message or a whole conversation
get_attachmentOne attachment by message id and index; base64, bounded
send_messageCompose via the account’s SMTP
message_actionread, star, archive, trash, snooze, analyzed / unanalyzed
list_flags / set_flagsFlagged-people list for humans and agents
sync / account lifecycleAdd, test, update, delete — credentials never echoed

Desktop

Omarchy plugin

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-omarchy

Secure 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.