Inspiration

Gmail never forgets a message, but it has no idea what I promised in one.

Promises like "I'll send it tomorrow" or "We'll ship by Monday" decide whether people trust us, yet they're buried in threads with no owner or deadline. Threadline is an upgrade for Gmail that tracks them.

Your inbox remembers every message. Threadline remembers what matters.

What it does

A local AI model reads a Gmail-style inbox (18 fictional emails, 13 conversations) and finds every commitment:

  • You Owe / They Owe, with real deadlines ("by Friday" becomes a date; guesses are labelled as guesses)
  • Proof: every item links to the exact sentence it came from, highlighted in the original email
  • Thread awareness: a later "done" or "cancelled" email closes the promise
  • Review before trust: you confirm, edit or reject each finding
  • Follow-up drafts for overdue items (never sent automatically) and a daily Briefing

Everything runs on your machine through Ollama: no cloud, no API keys.

How I built it

React + TypeScript, Vite and Tailwind on the front end; Node and Express on the back end; Ollama running qwen2.5:7b; Zod for schemas; 77 tests in Vitest and Supertest.

Core idea: the model proposes, code decides. The model must return JSON that matches a schema, and plain TypeScript checks each claim: the quote must exist in the email, the people must be in the conversation, the deadline phrase must appear in the email, and "completed" needs proof from a later email.

Challenges

  • A 7B model invents details: wrong names, misspelled email addresses, deadlines that aren't in the email. Every failure became a check in code.
  • Working out what "Friday" means depends on when the email was sent and in which timezone.
  • One sample email contains a prompt-injection attack, so email text is treated as untrusted data.

Accomplishments

Every commitment can be traced back to its source, the full flow runs 100% locally, and failures come with clear messages instead of crashes.

What I learned

LLMs are great at reading but unreliable at bookkeeping. Let the model interpret the language, and let code handle dates, people and proof. Trust comes from showing evidence and uncertainty, not from hiding them.

What's next

A real Gmail add-on through Google's official APIs, calendar export, a team view, and fine-tuned small models.

Independent project, not affiliated with Google. All demo emails are fictional. Built with help from Claude Code.

Built With

Share this project:

Updates

Submission history