Mailroom
A Gmail sorter that uses readable rules and low-cost AI, all undoable.
DataAgent
Open mailroom.kevinliu.studioSource
The numbers
- 61commits
git rev-list --count bc389e255 - 2GitHub stars
gh api repos/Kevin-Liu-01/mailroom --jq .stargazers_count (2026-10-30) - 16check files
gh api repos/Kevin-Liu-01/mailroom/git/trees/bc389e255?recursive=1 | grep -cE <glob> - 4.69commits per active day
61 commits over 13 distinct commit dates, 2026-09-25 to 2026-10-24
Trait
Per-Rule Cap Trash rules past their cap refuse to run, so no hit takes over half its Health.
mailroom@bc389e255:src/lib/engine/run.ts:125-126; src/lib/policy/schema.ts:69; README.md:58Moves
Rules hits for 65 and goes first. Rules you can read in one screen become Gmail filters, so new mail is labeled the moment it lands, at no cost.
mailroom@bc389e255:README.md:9-10, 23, 26Five Questions hits for 21 five times, 95% of the time. An AI model answers five questions about each email the rules miss, like “needs action”, as probabilities.
mailroom@bc389e255:src/lib/ai/triage.ts:43-67; README.md:9-12Ask In Plain Words hits for 105, 95% of the time. Ask in plain words, like “who hasn’t replied to me”, and get an editable Gmail search with ranked results.
mailroom@bc389e255:README.md:24; src/lib/search/compile.ts; src/lib/search/rerank.tsUndo restores 50 health. Every run previews first and writes a receipt, and Undo puts labels, filters and policy back, whole or per message.
mailroom@bc389e255:README.md:56; README.md:46; src/app/api/runs/[id]/undo/route.ts
Numbers pinned at bc389e255, 2026-10-24.



