I would love it if it could run against archived messages (in:anywhere -in:trash -in:spam) ... I've been archiving all email for a very long time and being able to run stats and purge it would do wonders.
Now shipped: --scope anywhere is now live — scans all mail (inbox, archived, sent), not just inbox. Works with stats, purge, and sync. Thanks for the push
Why thousands? You never read or delete all your emails within a day?
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.
Did you really use a LLM to generate the sample output in your readme instead of just running the application? I noticed the borders were all misaligned and wondered if you had hardcoded the number of spaces, but I looked at the code and you haven't.
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.
curious how you handle the volume - for heavy users with 50k+ emails, are you processing everything client-side or hitting the gmail api for each message?
Nice approach. Confidence scoring on what's the safe one to delete is smart, and that's the hardest part of any cleanup tool. How are you handling false positives?
I've been thinking about similar confidence scoring in a different domain (security) and the calibration is really tricky when the cost of getting it wrong is high.
22 comments
in:anywhere -in:trash -in:spam) ... I've been archiving all email for a very long time and being able to run stats and purge it would do wonders.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.
For me, it seems to be quite a few senders that fill my inbox. running
``
mailtrim purge``only finds about 200 MB of purge suggestions with a mailbox of 15GB, but deleting a few and running again finds a few more.
Gmail does some classification, it might be useful to have scopes that match those: promotions, updates, social and forums.
IMAP support would be useful for a yahoo account even if it's slower/less accurate. This is better than manual cleanup.
https://pypi.org/project/mailtrim/
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.
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.