Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Ecosystem Overview

What KyPost is

KyPost is a self-hosted email system. A Go relay server (kypost-server) talks to the user’s IMAP/SMTP mailbox, applies keyword labels with a local Ollama model, and exposes a web UI plus a relay API. Native clients on Android, macOS/iOS, and Linux contain no mail credentials and no direct IMAP/SMTP — they talk only to the relay.

Single-hosted, multi-client

One backend serves all clients:

  • Server — multi-user (admin/user), per-user IMAP/SMTP, per-user label lists copied from instance defaults at account creation, per-user tuning prompts and notification preferences, and OpenID Connect single sign-on with directory replication.
  • Android — keyword tabs, two-way contact sync, native-push pairing with FCM or UnifiedPush, optional pull mode, large-screen and foldable layouts.
  • macOS & iOS — SwiftUI shared codebase, three-pane on macOS, tab layout on iOS, WebKit reader, APNs + 90s polling fallback.
  • Linux — Qt6/Kirigami, one Flatpak for KDE Plasma desktop (3-column) and Plasma Mobile (bottom-tab push navigation).

All three clients share the same Go relay backend and the same 15-theme palette.

Core capabilities

AreaServerAndroidmacOS/iOSLinux
Mail readingIMAP inbox, folder mgmt, drag-drop moveRelay-proxied, no credentials on deviceServer folders incl. subfolders, HTML via WebKitInbox/detail/composer, WebEngineView, server folders create/rename/delete
ComposeSend via SMTP, draft save, attachments 25 MBTo/Cc/Bcc autocomplete from contacts, pickerCompose and send through relayReply/reply-all/forward, attachments, drafts, HTML composer
Keyword tabs/labelsPolls unread, local LLM classifies, IMAP keywords, per-user allowlistTabs from server tab/label fields, tune in Keywords screenRelay sorts into tabs/labels, visibility in settingsTabs from the same server fields
Filter rulesGUI + raw Sieve, run-now panel
ContactsAddress book + groups, dedupe, CSV/vCard, photos, CardDAV server + clientTwo-way sync via relayTwo-way sync, extended schema, reconciliation, groups/photos/IM/social/etc.Synced list/detail, offline queued edits, groups, dedupe
PGPBrowser-protected key, WKD/keyserver/Autocrypt discovery and WKD publishing, recipient check, browser-sealed pickup links, in-browser signature verificationQR key exchange; on-device encrypt, sign and decrypt once enrolledQR pickup link 2 min expiry, fingerprint confirmation, on-device decrypt once enrolled; server-custody accounts can use relay-side encrypt/sign, while browser-protected accounts hand sending off to webmailQR exchange, camera scan/show, on-device encrypt, sign and decrypt through the user’s own gpg-agent
Device enrollmentSeals the key to a device after a 14-character code matchesKeystore-backed, blocked while Hostile Location Protection is onSecure Enclave, released on user presenceImported into the user’s GnuPG keyring
Cached mail at restEncrypted secrets on disk; no decrypted bodies cachedSQLCipher, key in the KeystoreSwiftData store with backup exclusionSQLCipher, converted in place on upgrade
Sign-inPassword + MFA, or OpenID Connect SSOPer-device credential, no webmail sign-inPer-device credentialPer-device credential
PushBrowser push + native pairing, central Cloudflare relays for FCM/APNsFCM, UnifiedPush, or App Pull polling; delivery mode push/pullAPNs + 90s polling + background refreshUnifiedPush 2 tiers + 90s polling
MFATOTP, recovery codes, push-approvalPush approval via notification + in-app fallbackApprove from notification tapN/A

Privacy model

Covered in full by PGP & Encryption and the Security Model: client-held PGP keys, device enrollment onto phones and desktops, WKD/Autocrypt key discovery, the six-state signature trust model, browser-sealed pickup links, protected subjects, generic push notifications by default, and device-level hardening. The 15-theme system is in Theming.

  • KyPost Server — https://github.com/Busness-app/KyPost-Server
  • KyPost for Android — https://github.com/Busness-app/KyPost-for-Android
  • KyPost for Mac & iOS — https://github.com/Busness-app/KyPost-for-Mac
  • KyPost for Linux — https://github.com/Busness-app/KyPost-for-Linux

Workspace trust note

These assume self-hosting on hardware you control.