Pod kapotou

Tři okna, jedno jádro

Jak je Malachi Mail postavený, pro zvědavé, pro vaše IT i pro vývojáře: jedno jádro, tři nativní okna, co kde běží, jak málo potřebuje, co drží nepřátelskou poštu na uzdě a jak na témže jádru postavit vlastního klienta.

Klienti

Nativní na každém počítači

Žádná webová stránka v rámečku. Každý klient je napsaný v jazyce a toolkitu své platformy, s její klíčenkou, oznámeními a zvyklostmi, a všechny tři pohání totéž poštovní jádro: stejné chování, stejná bezpečnostní rozhodnutí, jedna sada překladů.

Jak to do sebe zapadá

Jádro, malachid, je jeden program v Go, kterému patří všechno kolem pošty: účty a synchronizace, místní úložiště a jeho index hledání, sanitizace HTML, vlákna, pravidla nástěnky, kalendář, Jira i CRM. Okno je samostatný proces, který jen zobrazuje a posílá příkazy, přes JSON-RPC na místním socketu, který jádro chrání klíčem vygenerovaným při každém startu. Klient GTK je reference; aplikace pro macOS a Windows ho zrcadlí funkci po funkci a most MCP pro agenty je klient téhož jádra s právy okna, ne většími.

Z téhož zdrojového stromu se jádro staví pro všechny tři systémy; co se mezi nimi liší, klíčenka, oznámení, webový pohled, žije v klientu. Rozhodnutí i jejich důvody jsou v poznámkách k architektuře projektu.

Šetrné k počítači

Poštovní klient nemá stát víc než pošta sama

0
přibalených prohlížečů

Okno je GTK, AppKit nebo WinUI. Tělo zprávy kreslí systémový webový pohled, a jen dokud je zpráva otevřená.

1
proces v Go

Celé poštovní jádro, od IMAP po index hledání, je jediný nativní program bez runtimu, který by nesl s sebou.

zstd
komprimované úložiště

Uložená pošta se komprimuje, aniž byste to poznali. Předvolby ukazují obsazené místo.

30 / ∞ / 0
dní příloh

Přílohy offline 30 dní, napořád, nebo nikdy: starší zůstanou na serveru, dokud je neotevřete.

Bezpečnost

Bezpečnost, kterou si vaše IT přečte

Stavěné na nepřátelskou poštu

Každá zpráva projde sanitizací v jádru dřív, než ji okno uvidí. Vzdálené obrázky zůstávají blokované, dokud nerozhodnete jinak, vykreslování nemá síť, hesla nikdy neopustí systémovou klíčenku a každý parser je testovaný na záměrně poškozené poště.

Dva procesy, jeden klíč

Hesla a tokeny jen v systémové klíčence: Secret Service, přihlašovací klíčenka, Credential Manager. Certifikát serveru jde připnout podle otisku a žádné ignorovat certifikát neexistuje. Okno a jádro se navzájem ověřují klíčem, který jádro zapíše při každém startu. Jádro mluví s vašimi poštovními servery, vaší Jirou, vaším serverem CalDAV a vaším CRM, a s ničím jiným, dokud nezapnete asistenta.

Nástroje rozhoduje start, ne model

Co agent smí, je dané při spuštění mostu MCP. Nástroj mimo povolenou úroveň se vůbec nezaregistruje, takže se v seznamu agenta ani neobjeví. Čtení a koncepty jsou vždy povolené; změny, odesílání a třídění jsou samostatné přepínače.

Pošta jsou data, ne instrukce

Vše, co přijde ze zprávy, z kalendáře nebo z issue, je před modelem ohrazené jednorázovou značkou a most mu to řekne. Asistent smí nástěnku komentovat, ale nemůže nastavit stav, připomenutí ani Hotovo, archivovat, ani smazat koncept.

Celý model hrozeb je v bezpečnostních poznámkách projektu; co asistent smí a nesmí, má vlastní stránku.

Protokoly

Rozhraní pod tím vším

Kde volba rozhraní dělá rozdíl.

Microsoft 365 přes Microsoft Graph

Ne IMAP, ne EWS: rozhraní, které Microsoft rozvíjí. Funguje tam, kde je základní ověřování vypnuté, přihlašuje se v prohlížeči s klientem, který aplikace nese, a kalendář přijde s týmž přihlášením.

Microsoft od října 2026 vypíná Exchange Web Services pro Exchange Online; klienti stavění na nich to teprve dohánějí.

Most MCP pro vaše agenty

Claude Code, Claude Desktop, Cursor, Zed nebo kterýkoli klient MCP dostane odstupňovaný pohled na poštu, kalendář a nástěnku. Obsah pošty je ohrazený jako data, nikdy jako instrukce, a přílohy přijdou jako text.

Pro vývojáře

Postavte si vlastního klienta

Jádro je stavěné k dalšímu použití: nejen pro tři okna, která tu vidíte, ale pro kteréhokoli poštovního klienta, kterého chcete napsat.

Všechno, co poštovní klient potřebuje, je za API jádra: účty a jejich přihlášení, synchronizace s IMAP, Microsoft Graph, Jirou, CalDAV a eWay-CRM, místní úložiště s retencí a kompresí, hledání, vlákna, sanitizovaná těla HTML, přílohy na vyžádání, koncepty a outbox, nástěnka, kalendář, klíčenka a oznámení o každé změně. Klient zobrazuje a ptá se; nikdy neparsuje zprávu, nikdy nevidí heslo a nikdy nemluví se serverem. Proto také nový klient zdědí každé bezpečnostní rozhodnutí jádra hned první den.

Kontrakt je JSON-RPC 2.0 přes místní socket, jeden objekt JSON na řádek, s handshakem nad klíčem, který jádro zapíše při každém startu. Je sepsaný metodu po metodě, s každým oznámením a chybovým kódem, v dokumentu API; typy Go v backend/pkg/api jsou jeho strojová podoba a mění se v témže commitu, pod verzí protokolu. Jazyk je libovolný: klient GTK je v Go, klient pro macOS ve Swiftu, klient pro Windows v C# a most MCP je klient téhož jádra. malachi-rpc v repozitáři zavolá kteroukoli metodu z příkazové řádky dřív, než existuje okno, a malachi-devmail vám dá vzorovou schránku s Jirou a CRM, nad kterou se vyvíjí bez rizika pro vlastní účet.

Začněte poznámkami k architektuře a API, spusťte jádro samotné přes make run-backend a držte se jediného pravidla, díky kterému je klient malý: logika patří do jádra, okno jen zobrazuje. Open-source klient se staví a šíří zdarma pod AGPL; proprietární bere komerční licenci níže.

Open source, dvě licence

Jádro je pod licencí AGPL-3.0 a je k dispozici i s komerční licencí pro produkty, které AGPL být nemohou; tři klienti a všechno ostatní jsou GPL-3.0-or-later. Oznámení komponent třetích stran jdou s každým balíčkem. Podrobnosti jsou v LICENSING.md; co každý klient potřebuje a používá, říká tabulka tří klientů, a sestavení ze zdrojů popisuje stránka Stažení.