I built mailtrim to surface this pattern:
- ranks senders by actual storage impact (not just count)
- confidence scoring on what's safe to bulk-delete
- 30-day undo on everything — nothing is permanent by default
- runs entirely locally, no email data leaves your machine
Free, open source (MIT). No subscription, no backend.
One friction point upfront: Gmail API setup is one-time, ~15 min.
After that it's just `mailtrim stats` and `mailtrim purge`.
Keen to hear feedback on the confidence/safety model especially —
that's the part I'm least sure I've got right.
https://github.com/sadhgurutech/mailtrim
Right now mailtrim only looks at inbox by default, but adding support for something like:
is very doable.Would you expect this as: 1) a flag (e.g. --all-mail) 2) or the default behavior?
Happy to prioritize this if it's useful. Feels like it would surface way more interesting results.
I started with the Gmail API because: - better performance vs IMAP for large mailboxes - easier access to size metadata per message
That said, IMAP support is something I definitely want to add. Especially for iCloud/Outlook users.
If I did add IMAP, would you be okay with: - slower scans - slightly less accurate size estimates
Or is parity with Gmail important?
Was also tinkering with Gmail bloat but, admittedly, with a less ambitious approach. Definitely going to give it a try.
My inbox, which I have for almost two decades only has 28 emails in it. Not 28 unread emails, but 28 total emails. I delete everything within a day of receiving, except for every important things, hence why 28 of them still remain.
Keeping thousands of emails in your inbox, while virtually free, is an attack vector for hackers, and also a gold mine for advertisement brokers who pay email providers money to show you ads based on your daily habits.
See I used to have 2 MB on my hot mail and 4 MB on my Yahoo! Mail. I used to do exactly what you said. Then, I got invitation to Google mail. 1GB and counting!
I got lazy. I no longer had to delete mail anymore. So, it started accumulating. There. That's the whole story.
If you did generate the output with a LLM instead of just running it... why?
Also:
> It uses Claude AI for smart classification, but runs entirely locally: your emails never leave your machine.
How can both of these things be true? How can Claude be used as a classifier without sending your emails to Claude? From looking at the code it appears that you do in fact just send off emails to Claude, or at least the first 300-400 characters, so that line is just a complete lie.