Skip to content

Repository files navigation

Feather Mail

Feather Mail

A fast, minimal email client built natively for Linux with Rust, GTK4 and Relm4.

GPL-3.0-or-later CI Latest release GitHub Sponsors

Website · Download · Install guide · MCP guide · Changelog

Feather Mail showing a local-first three-pane inbox

Fast by default, minimal by design

  • The inbox opens from local cache while synchronization continues in the background.
  • A calm three-pane interface keeps controls close and clutter out.
  • Local FTS5 search answers without a network round-trip on every keystroke.
  • Several accounts work in one window, including a unified All Accounts view.
  • IMAP/SMTP synchronization runs behind a durable offline command queue.
  • HTML mail renders with JavaScript disabled, a restrictive CSP and remote images blocked by default.
  • Search, compose, archive, snooze, reply and navigation are keyboard-friendly.
  • Optional MCP over stdio uses the same Core command bus as the GTK interface and is off by default.
  • No telemetry, ads, paid cloud mailbox or “Pro” feature lock.

Install

Every release ships x86_64 .deb and AppImage packages; the release page lists the current version and what changed. Both require GTK 4.10 or newer and the WebKitGTK 6.0 runtime; the AppImage intentionally uses the host WebKitGTK so its helper processes stay version-matched.

# Ubuntu / Debian / Linux Mint
sudo apt install ./feathermail_*_amd64.deb

# Other recent x86_64 distributions
chmod +x Feather-Mail-*-x86_64.AppImage
./Feather-Mail-*-x86_64.AppImage

See docs/install.md for dependencies, source builds and provider notes.

Account support

Add Account asks first where the mailbox lives: IMAP or Linux.

Linux lists the accounts this desktop is already signed into (GNOME Online Accounts) that carry mail. One press adds the mailbox: no browser step, no password. Feather Mail ships no Google client ID or secret for this path -- the access token is issued by the session's own account manager over D-Bus, and all Feather Mail keeps is that short-lived token plus the account's id in the manager, used to ask for the next one. Revoke access where the account lives: Settings -> Online Accounts. Sessions without such a manager (KDE, a bare Sway/i3) see instructions there and use the IMAP branch instead.

IMAP configures IMAP/SMTP with presets for Google, Microsoft and Yandex plus a form for your own server; after you enter your address it looks up the provider's servers (Thunderbird ISPDB and DNS SRV) and fills in whatever you left empty, and everything stays editable. Google and Yandex users should use provider app passwords. Microsoft 365 and Outlook.com commonly require Modern Auth and may reject password-only clients; interactive Microsoft OAuth is not exposed yet. The UI says this before credentials are submitted.

Secrets are stored in the desktop Secret Service keyring, never in SQLite. If no keyring is available, Feather Mail refuses to save the account password.

Build from source

Rust 1.93+, GTK 4.10+ and WebKitGTK 6.0 development files are required.

sudo apt install git libgtk-4-dev libwebkitgtk-6.0-dev pkg-config
git clone https://github.com/prodocik/feathermail.git
cd feathermail
cargo run -p feathermail
cargo fmt --all -- --check
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings

Project policy

Feather Mail is GPL-3.0-or-later free software and is maintained by prodocik. Forks are welcome under the GPL. This canonical repository is solo-maintained and does not merge outside commits; bug reports and private security reports are welcome.

Development is supported by donations, not by selling inbox data. See Support the project.

Support the project

Network Address
Bitcoin bc1qx6j4yswhckt4w3myfc3lluzz79rahq403m0jm3
Ethereum 0xEb3C23Ad55c7F9ECbf5791F78C6123526667867D
Solana 35XhyaYjHirh6gs5C3eiCYVXPHEmpuiXAgjmgBr1tSU2

About

Fast, minimal, Linux-native email client built with Rust and GTK4.

Topics

Resources

Security policy

Stars

11 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages