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 the tenant's admin-consent policy blocks.

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.

Built with

  • Python
  • pywin32 (Outlook COM)
  • pywebview
  • Claude Agent SDK
  • pydantic
  • PyInstaller

More of Jeremy's work