- Python 3.10+ (stdlib
imaplib,email,argparse) - Streamlit (UI)
- LiteLLM (one interface to 100+ provider APIs; replaces per-provider SDKs)
- python-dotenv, pandas
Clean up multiple Gmail accounts via LLM-classified sender lists. Per-account, editable, debuggable, multi-provider.
- Default mode sends sender + sample subjects only. Mode 3 (sender + subject + first N body lines) is opt-in and skips bodies for security-pattern senders.
- Trash is the terminal action. No permanent delete.
- One account at a time.
- App Password for IMAP (no OAuth, no GCP setup).
- Provider-agnostic via LiteLLM. Adding a provider = setting
LLM_MODELto any LiteLLM-supported model name (and a matching key var). The Streamlit UI ships with eleven presets inapp.py:PRESETS. .envholds all credentials. Gitignored.- IMAP search uses Gmail's
X-GM-RAW from:exact@addrfor token-exact match. Plain IMAPFROMis substring and unsafe for the destructive Trash path.