Jeremy Neely Text Jeremy

AI & Agents · Beta

localzero

Inbox-zero triage for Outlook Classic, run locally with Claude.

Built for: Outlook Classic users who live in email

The triaged inbox with a needs-reply popup and drafted replies (sample data).
The triaged inbox with a needs-reply popup and drafted replies (sample data).

The problem

A busy inbox buries the few emails that need a reply. Commercial inbox-zero tools need cloud access to the mailbox, which many companies' IT policies block.

What I built

I built a local email assistant that works through Outlook's COM object model, so it needs no Graph app or admin consent. Rules sort predictable mail, Claude classifies the rest, and a tray watcher drafts replies but never sends.

How it works

  1. YAML rules handle predictable mail first.
  2. Claude classifies the rest into categories, in batches.
  3. You review the planned actions, then apply them.
  4. A tray watcher drafts replies for mail that clearly needs one.
  5. A popup surfaces needs-reply mail waiting past 3 business hours.
How localzero is wiredNothing is ever sent automatically. AI runs on a Claude Code sign-in with no API key.
Comes inInside localzeroGoes out Outlook Classic inbox local COM, no Graph YAML rules for predictable mail Rules first free, deterministic Claude classifies the rest, in batches Review plan then apply Tray watcher drafts replies Sorted inbox categories, archive Drafts saved, never sent Needs-reply popup after 3 business hours

Built with

  • Python
  • pywin32 (Outlook COM)
  • pywebview
  • Claude Agent SDK
  • pydantic
  • PyInstaller
Text Jeremy about this Next: Secure AI Advanced Chat All 38 tools Texting opens your Messages app with a note already written. He replies himself.

More screens

More of Jeremy's work

All 38 tools, by category