Alcedo

A native GNOME mail client that keeps your mail on your machine and your trackers off the page.

Alcedo is a GTK4 and libadwaita mail client written in Rust with Relm4. IMAP and SMTP, a unified inbox, and privacy defaults that are on before you touch a setting.

  • Linux only
  • Ubuntu 26.04 LTS
  • GNOME 50
  • Wayland

Version 0.1.0, initial development. Alcedo installs from source on Ubuntu 26.04 with GNOME 50. There is no Flathub package and no binary release yet. Expect rough edges, and read the install page before you point it at an account you rely on.

What it does

Six things, stated plainly.

01

Trackers come out before the page renders.

Remote images are off by default. 1×1 pixels and images served from known tracker hosts are stripped from the HTML, not merely deferred. You can load remote content per message when you want it.

02

Nothing reports back on your reading.

Read receipts are off. Outbound tracking pixels are off. Turn either on and Alcedo discloses it before the message is sent. There is no vendor telemetry, no analytics, and no update ping.

03

Native GTK4 and libadwaita.

Rust and Relm4, not a packaged web page. A real three-pane GNOME window on Wayland that follows your system light and dark preference and your accent colour.

04

It behaves like a desktop application.

Registers as your mailto: handler. Optional tray icon. Mail, calendar, and contacts live in one window instead of three.

05

Every account in one inbox.

Gmail and Microsoft sign in with OAuth over PKCE, in your system browser. Yahoo and generic IMAP use an app password. The unified inbox spans all of them, and each account keeps its own folders.

06

Local store, keyring secrets.

Messages and metadata sit in SQLite on your disk. Tokens and passwords go to the system keyring and never into SQLite. IMAP and SMTP run over rustls.

The window

A rail, your folders, the list, the message.

Alcedo is a three-pane client with a switcher rail for mail, calendar, and contacts. The reading pane sits to the right or below the list.

Labelled diagram of the Alcedo three-pane window A line drawing of the window: a switcher rail on the far left, a folder pane, a message list, and a reading pane on the right. The reading pane shows a notice where remote images are blocked. ALCEDO SEARCH COMPOSE RAIL MESSAGE LIST READER FOLDERS Unified Inbox Inbox Starred Drafts Sent Archive Trash 128 42 09:41 Tue Remote images blocked — Load once
A labelled diagram of the window layout, not a screenshot.

Also in the window

Smaller things that matter daily.

  • Verification codes, found on device. When a message carries a one-time sign-in code, the reader surfaces it with a copy button. Detection is local pattern matching. No cloud service sees the message.
  • Compose in plain text, HTML, or Markdown. Plain text is the default. Spell-check runs through Enchant using your system dictionaries.
  • Mail, calendar, and contacts share one window. Switch with the rail on the left.
  • Optional compose rewrite. If you supply your own Groq, OpenAI, Anthropic, or Gemini API key, you can ask for a rewrite of a draft you are writing. It ships off, it needs your key, and it touches nothing but the draft you hand it. Alcedo does not train on your mail and never sends received messages anywhere.

Get it

Build it from a checkout.

One script installs the GTK4 and libadwaita build dependencies, builds a release binary, and puts the desktop entry, icon, and GSettings schema where GNOME expects them.

./scripts/install-ubuntu-26.sh