emailAmigo
A local email workspace that keeps accounts separate while bringing messages, tasks and explicit actions into one place.
Python · SQLite · FTS5 · Vanilla JavaScript · IMAP

The problem
Email work spans folders and accounts. Finding the original message, understanding what needs a reply and acting on the correct account should fit into one workflow.
The implementation
A local email workspace combines isolated account contexts, a unified inbox, original messages, drafts and evidence-backed task suggestions. Account-bound requests prevent a late response from replacing the newly selected account.
Engineering decisions
- SQLite stores messages, threads and exact mailbox positions. Incremental imports preserve local decisions.
- FTS5 provides prefix search and BM25 ranking, weighting subjects above sender names and message bodies.
- Explicit read and star actions identify an account, folder, UID and UIDVALIDITY. Uncertain writes are surfaced without automatic retries.
- Original HTML uses an isolated viewer. Mail composition requires a preview and confirmation.
Validation
Synthetic Python integration tests cover account isolation and server actions. Browser scenarios exercise account switching, mail composition and responsive layouts. The demo has two accounts with deliberately identical Message-IDs.
Try the demo
Install the Python package, then run python -m email_amigo serve --demo. Open http://127.0.0.1:8765. The demo requires no mailbox credentials or AI service.
Current scope
Release 1.3.0 integrates IONOS multi-account support, flag actions and local search. Gmail OAuth, other university providers and a native Android app remain future milestones. Synthetic tests do not establish live-provider reliability.