What works today
Version 0.1.2, on all three platforms unless said otherwise. The GTK client on Linux is the reference; the macOS and Windows apps mirror it feature for feature with their platform's widgets.
Accounts
IMAP and SMTP with a setup assistant that finds the server settings for most providers from the address alone. Microsoft 365 and Outlook.com sign in in your browser out of the box, through Microsoft Graph. Gmail and Google Workspace sign in with an app password or with a Google OAuth client of your own. On GNOME, both can also come from GNOME Online Accounts, with no separate sign-in.
Passwords and tokens live in the system keyring: Secret Service on Linux, the login keychain on macOS, Credential Manager on Windows. A server with a certificate of its own can be trusted explicitly, by its fingerprint, after you have seen it; there is no general ignore certificate.
Reading, offline
Folders and messages are synchronised into a local store within a configurable retention window, and new mail arrives as the server announces it (IMAP IDLE, Graph polling). Flags, moves and deletions are queued locally and pushed back, so the client works on a train.
To save disk space the stored mail is kept compressed, and the large attachments of older messages can stay on the server until you open them. With Never Store Attachments none is stored but the pictures a message shows: an attachment you open is downloaded into memory and is gone when you quit. Drafts and signed or encrypted mail always stay whole.
HTML mail, safely
Message bodies are sanitised in the engine before any window sees them; raw HTML never crosses the engine's boundary. Remote images stay blocked until you load them once or trust the sender; the renderer runs with JavaScript off, a strict content security policy and no network at all. Attached messages open read-only in their own window. Other attachments open in a preview (GNOME Sushi, Quick Look, a viewer of the app's own on Windows) and carry the system's quarantine mark when saved.
Writing
Formatted text, attachments and inline images. Recipients are completed from the people you have written to, and on GNOME from the system address books too, and become removable badges. Plain text that looks like Markdown is pasted as formatted text. A message that cannot go out right away waits in a local Outbox and is retried; a copy is filed in Sent. Drafts rest in the account's Drafts folder, so another client sees them as well.
Conversations
The engine threads mail by its headers as it arrives; Group by Conversation turns the message list into one row per conversation. A conversation is shown as cards on a timeline or as a chat of bubbles, your own replies from Sent and your unsent drafts in place, the quoted history folded away. A quick-reply bar under a message or a chat answers without opening a window; Open in a Window takes what you typed with it.
Search
Ctrl+F (⌘F) searches the mail stored on this computer in the folder, its account or every account, while you type: every word as a prefix, case and diacritics ignored ("priloh" finds "Přílohy"), plus from:, to:, subject:, is:unread, has:attachment, dates and in: a folder. With the assistant, Search in your own words turns "invoices from Jana in March" into that query.
Many messages at once
Several messages can be selected and archived, moved, deleted, marked or forwarded together (each as an attached .eml). Messages, folders and accounts have context menus: Move To, Mark All as Read, Empty Trash. The Inbox has collapsible date sections with flagged messages first.
Newsletters
Mailing lists and newsletters are recognised from their headers and labelled in the list. Where the sender supports one-click unsubscribing, one click does it, through the engine and only after the sender's DKIM signature has been verified, never by opening a link; otherwise the unsubscribe mail is sent for you.
Jira
A Jira Cloud or Data Center site is an account. Its issues are read as conversations: the description, the comments, the status and assignee changes. The sidebar has the chosen projects and the views Assigned to Me, Watching and Open. A comment takes the place of a reply, a status change is made from the issue card, and the site's notification mail in your mail accounts is linked to the issue or hidden. Jira Cloud signs in with an API token, Data Center with a personal access token.
Calendar
The calendars of Microsoft 365 and Outlook.com accounts (when you switch them on) and of CalDAV servers (Nextcloud, iCloud, Fastmail, Radicale and others, as a calendar-only account) are kept offline and shown by day, week, month or as an agenda, with reminders. Invitations that arrive in any mail account can be accepted, tentatively accepted or declined from the message; replies and invitations go through the server or, where it does not send them, as invitation mail through the Outbox. Find a free slot looks across your calendars.
The Board
A view beside Mail and Calendar that sorts your conversations and Jira issues into Hot, Waiting for You, Waiting for Them and For Your Information. The rules read only headers, the structure of a message and where it is filed, never its words; your own decision always wins over them. A case has Done, Remind (later today, tomorrow, next week), Archive and Delete, and a suggested reply from the assistant is edited right on the board. Archiving a conversation in Mail marks its case done, and a new answer brings it back.
eWay-CRM
A message can be saved to eWay-CRM with links to contacts, companies, deals and projects, from any mail account, and the rest of its conversation follows it automatically. The connection is set up under Preferences → Integrations; the password goes to the keyring and the session stays on your computer.
The Assistant
Optional and experimental. The ✦ button hands the selected message, conversation or folder to Claude Desktop (macOS and Windows) or Claude Code with a prepared question, or runs your own Claude Code (or ChatGPT, through Codex) in a panel of the main window with only the bridge's reading and drafting tools. It summarises, finds tasks and deadlines, writes and rewrites replies, turns your words into a search, triages the Board and suggests replies on it. Nothing is sent to the model before you ask, and nothing by mail before you send the draft yourself. How the assistant works, and what is sent when.
AI agents: the MCP bridge
malachi-mcp is a Model Context Protocol server over stdio that gives an agent (Claude Code, Claude Desktop, Zed, Cursor or any other MCP client) a gated view of the mail, the calendar and the board, in tiers you choose when it starts: reading and drafts always, modifying, sending and triage only when granted. A draft goes out only when you send it, and everything that comes from mail is fenced as data before the model sees it. The tiers and the rules.
Desktop integration
mailto: links, new-mail notifications with the system's sound, launch at login, running in the background (with a tray icon on Windows), light and dark styles, a foldable sidebar with favourite folders, and the platform's conventions for shortcuts, menus and dialogs. Czech translation, and the machinery to add more languages.
Security and privacy
- Mail is treated as hostile input: every parser and renderer is tested against deliberately broken messages and documents.
- The window and the engine are two processes; each connection is authenticated with a key the engine generates at every start.
- Passwords and tokens never leave the system keyring; the engine's logs never contain them.
- No telemetry, no crash reporting, no update checks that phone home. The engine talks to your mail servers, your Jira, your CalDAV server, your CRM, and to nothing else unless you turn an assistant on.
- The core is AGPL-3.0 and also available under a commercial licence; the clients are GPL-3.0-or-later.
The three clients
How the three windows share one engine, and what runs where: Under the hood.
| Linux | macOS | Windows | |
|---|---|---|---|
| Toolkit | GTK 4, libadwaita | Swift, AppKit | C#, WinUI 3 |
| Needs | libadwaita 1.7, or the Flatpak | macOS 14 | Windows 11 |
| Keyring | Secret Service | Login keychain | Credential Manager |
| Message body | WebKitGTK | WKWebView | WebView2 |
| Attachment preview | GNOME Sushi | Quick Look | Built-in viewer |
| Online Accounts | GNOME Online Accounts | Browser sign-in | Browser sign-in |
| Claude Desktop hand-off | Not supported | Yes | Yes |
| Binaries | Flatpak, .deb, .rpm | Notarised disk image | From source for now |
Not yet
- PGP and S/MIME.
- Message filters and rules; a unified inbox.
- Google Calendar; other OAuth2 mail providers.
- A signed Windows build and an installer for it.
- A mobile app, and there are no plans for one.