Penguin Mail – open-source Rust email client for Linux with AI

penguin-mail.com

229 points by kavourias a day ago


jttnr - 14 hours ago

The thing with all these vibe-coded email clients is: how well do they sanitize the full-content view of HTML emails? Thunderbird and the like go to great lengths to make viewing those emails safe, e.g., by preventing inline JavaScript and all kinds of tracking techniques (pixels, CSS references, etc.). Without having checked, do these vibe-coded clients just render the HTML in a WebView, or do they have similar protections in place?

slipheen - 20 hours ago

That's a very nice looking app - I like the look of it it gives me Mail.app vibes.

A mail client is always a tough thing to get right so I'm glad you're working on one

I love then idea that as the total cost (time/money/attention) of personalizing software continues to come down, more people will be able to encourage a diaspora of options, tailored to each niche.

mburns - 18 hours ago

Interesting that they call out Fastmail as a supported provider, but don't support JMAP. Seems like that would have been an easy stretch goal for Claude, and a good way to stand out amongst the competition.

wewewedxfgdf - 19 hours ago

The industry standard wording is to suffix the headline with "written in Rust".

Example:

"Penguin Mail – open-source email client for Linux with AI, written in Rust".

Its important, or people might miss the most interesting/important thing about your software.

tlhunter - 21 hours ago

Does anyone remember Sparrow?

I like the idea of a native Linux email client. The UI looks pretty good too. It's really not hard to beat thunderbird.

Calling it version 1.0 is bullshit though. It's only about a month old: https://github.com/c9dev/penguin-mail/graphs/contributors?al...

A project with the complexity of an email client cannot be considered stable in a month. There are bugs that will only show up after a year. It has a calendar after all.

rjzzleep - 17 hours ago

I think this looks good, but I'm not on a Mac anymore.

For people that want a terminal client with tabs, integrated html viewer(including images), markdown compose, MCP, with unified inbox, I built notmutt.

https://fishman.github.io/notmutt/

aboardRat4 - 15 hours ago

All other email clients are crap, but instead of helping them, more half-baked attempts to reinvent the bicycle.

janilowski - 13 hours ago

Nice UI but untrusted email messages is something I'd rather open in [an uglier app with decades long reputation for being reasonably secure](https://www.thunderbird.net/en-US/)

jdalgetty - 9 hours ago

I got this trying to setup a gmail account:

Google hasn’t verified this app

The app is requesting access to sensitive info in your Google Account. Until the developer (support@penguin-mail.com) verifies this app with Google, you shouldn't use it.

gorgoiler - 13 hours ago

“Email client” is an interesting puzzle. Email involves multiple activities:

Viewing: I have a message or messages stored on disk in files or mboxes or a maildir. How do I render them? Example use case is evidence in a law suit or, more likely, emails I’ve put in a shared drive to help me and my partner argue with our landlord. Yes, I could just have a Gmail folder for these but I don’t want to have one foot in a file-filesystem and one in a mail-filesystem. I want “lease_2024.pdf” and “20240401_deposit_confirmation_002.eml” to both be files. But then of course we have…

Filesystem interface: Emails have important attachments with MIME file names. Or perhaps a more keen observation is that some named files have emails as attachments! I’d like to symlink into a virtual FS that keys files off a UUID / Message-ID, and be able to mount that virtual FS from any mail store I have available (Gmail API, JMAP, IMAP, .tar archive, mbox, maildir, or .eml files.) Most conversations I have with people don’t involve files, and most files don’t involve conversations, but when they do I want them to feel natural and not some kind of special category of filey-messagey thing that doesn’t play well with plain files or, less commonly, plain messages.

Composition and sending: Creating a new message involves making a new file and then using that file to drive a sending API. I want to compose a beautiful email using a tool that is good at that job. Maybe I’m using vim to draft it in markdown with macros and tools to machine build certain complex parts? I also need some mime aware tooling — sometimes — to help prepare a bunch of attachments that may or may not have names related to their names on disk! I want all of this to be scriptable, on the occasions when it’s complex (30 part message for a client’s loan application!) and easy when it’s ad hoc (to: mom, see cat.jpg).

Search: email is notoriously the extension of and replacement for my long term memory. I have gathered message history from many sources and accounts over the years. I need to manage these into packed archives for the old ones, editable archives for the current ones, promote the former to the latter, and arrange new messages into the system. This feels like another separate tool.

I’m sure there are other potential tools lurking here as well. Separate rendering, composition, sending, receiving, searching, and archiving, feels like the goal. Most new email apps I see try to implement all of the above in one new package when, really, it would be great to see innovation on each branch of email as separate tools.

My PDF viewer doesn’t need to innovate on file browsing! My SVG drawing tool doesn’t need to innovate on mounting remote filesystems via SSH!

danielspace23 - 12 hours ago

I've been using Aerion (https://aerion.3df.io) for a few months now, it's another mail+calendar+contacts app for Linux that is largely vibecoded. I haven't tested Penguin thoroughly yet, but I think Aerion is more feature rich, and has served me well over the months.

Why am I not using Thunderbird? Aerion's UI is much better, and most importantly snappier, especially on my older laptop.

tamimio - 19 hours ago

Tested on fastmail, here’s few notes from 10min impression:

- can’t choose a sender email?! This is major dealbreaker, if you have many aliases or domains.

- no favico for emails, this is also a deal breaker for me, as I used it to quickly skim and find or check new emails.

- folders orders is messed up, trying to arrange them made it worse

- trying to color a folder and it says “server doesn’t support that”

Also the UI needs more polishing overall.

pprotas - 14 hours ago

“With AI” means they have a built-in assistant (which no one wants), rather than exposing the functionality through MCP.

rsolva - 10 hours ago

Wow, this looks great! Only thing missing is a flatpak :)

kdkwcjkejdwijc - 5 hours ago

Not a fan of the purple but this looks good! A native Linux app that looks actually good? I’m truly surprised. Well done.

- 12 hours ago
[deleted]
kavourias - 8 hours ago

I appreciate all feedback shared here, would love to have it on GitHub so I can sort it out

thank you all :)

rauno56 - 10 hours ago

A year-or-so ago I (successfully) experimented with setting up a secondary self-hosted mail server(long time gmail user otherwise) and immediately learned that, despite of all the FUD around it, hosting email is the easy part. Setting up stalwart with all the bells and whistles takes a few hours for competent technical individual.

I really appreciate that we have a choice, but I honestly don't get how anyone can call Thunderbird an awesome email client given it's UX - am I using the wrong Thunderbird? It gets the job done, but the UI is bloated(all options must fit onto the screen at all times), slow and confusing. Happy to see alternatives emerging - vibe-coded or not.

nha1 - 18 hours ago

I was wondering what “with AI” means and the page doesn’t really answer that thought the README does. It drafts replies.

Also it is made by pivotd ? What is it ? What is the end game ?

Genuinely curious as I am in the mail space with klar.im

hedgehog - 21 hours ago

This is interesting, I am doing an experimental effort with similar goals. What is your approach to testing? The bug surface of something like this is quite large. Also, do you have a plan for sandboxing?

h4kunamata - 20 hours ago

I was 100% interested until crossing "...with AI".

ranger_danger - 20 hours ago

Surprised to see a new (large) GTK app, especially in Rust.

Can this be compiled for other operating systems than Linux?

dvno42 - 20 hours ago

Maybe I'm not the target here but an embedded chat ai window is a huge turn off to me. Having a CLI I can give my own agent to access/query the data, if I choose to do that, would have been preferred but if the target was my mother, then a chat window is probably a better option.

lasiotus - 19 hours ago

Is there anything like this but in TUI?

williamhm - 17 hours ago

Is it perhaps because of the application speed in Rust?

gib444 - 11 hours ago

I'm amazed how few clients have features to address actual day to day friction points:

- Detection of one time login codes (which is annoyingly getting more popular). It's annoying to manually copy paste them

- Detecting whether an email contains something that requires urgent action (eg court documents, complaint processes, lawyers)

- Options to filter out the torrent of "detected new login" emails

- Options to filter delivery spam (I often get 3-6 emails about nonsense minor delivery updates about - received, at customs, out for delivery etc)

ie doing clever and useful things with the content of emails based on common content and actions

Or maybe these just apply to me?

harisamin - 12 hours ago

wow that looks super polished!

nsagent - 16 hours ago

Went to watch the Youtube intro [1] for Penguin Mail and was greeted by the most egregious scam video. Didn't click the ad, but simply went to the domain (usbest1.com) and it's just chock full of AI generated content hoping to scam you out of your money. Going through the checkout flow, it even asks you if you want to tip your driver (presumably for delivery).

Sorry for the off-topic, but Google (and all ad networks) should be legally required to vet their advertisers. That's gotta be the worst I've seen.

[1]: https://www.youtube.com/watch?v=0PyJCsw1FSE

mal10c - 19 hours ago

Got this building on FreeBSD for those interested:

1. Install the GTK stack:

  pkg install gtk4 libadwaita webkit2-gtk_60 pkgconf
2. FreeBSD ships WebKitGTK 2.46.6 and the project turns on the v2_50 feature of the webkit6 crate, so switch that to v2_46:

  sed -i '' 's/v2_50/v2_46/' $(git grep -l v2_50 -- '*Cargo.toml')
After that, cargo build completes against 2.46.
kavourias - a day ago

Penguin Mail is a mail and calendar app for Linux, written in Rust with GTK 4 and libadwaita. It's designed to be a lightweight, privacy-first alternative to Thunderbird or GNOME's built-in email.

What it does: • Aggregates Gmail, Microsoft (Outlook/Hotmail/Microsoft 365), Fastmail, iCloud, Yahoo, and any IMAP/POP3 account into one inbox • Calendar support for every account (Google Calendar, CalDAV) • Contacts with CardDAV integration • OpenPGP and S/MIME signing/encryption — keys never leave your machine • Gmail-style categories bar (Primary, Updates, Promotions, Social) • Send Later, Undo Send, templates, Markdown compose • A built-in AI assistant that can summarize threads, draft replies, manage rules, and search calendars. It runs on a local model (Ollama/LM Studio), an Anthropic API key, or Claude Code — you pick per job • Remote content blocked twice (WebKit filter + CSP), JS off by default • Runs in the tray at ~55 MB

It's GPL-3.0 and available as .deb, .rpm, Arch package, snap, tarball, and Flatpak. Not on Flathub yet — that's next.

We built it because existing Linux email clients felt bloated or didn't respect privacy. The AI assistant is a nice-to-have but not required — the app works great without it.

Feedback welcome: install experience, missing features, anything confusing. Happy to answer questions about the Rust/GTK4 architecture too.

victor_pudeyev - 7 hours ago

[dead]

alescalaios - 11 hours ago

[flagged]

sehw - 16 hours ago

[dead]

d3Xt3r - 17 hours ago

Yet another GTK4/libadwaita, no thank you. I mean, if you're going to use Rust and vibe code thing, why not use a more sensible, Rust-native UI like egui?