Mailroom
Routine support questions get a draft based on your product's documentation. Flagged messages stay in your review queue, alongside the reason they need attention.
- My role
- Independent developer
- Status
- Running my support mail · local-model edition in development
I run nine products and I'm one person. Every one has a support address, and the mail doesn't care that I have a day job. Mailroom sorts the customer questions from receipts and alerts, drafts replies from each product's documentation and holds flagged messages for me to review.
Inside the app
A demo install with invented customers and the same knowledge base my real inboxes use. Select an image to view it full size.



From inbox to reply
- 01
Route
Mailroom polls a folder in a mailbox you own over IMAP or JMAP, and picks the product from the address the mail was sent to.
- 02
Classify
A small model sorts customer mail from receipts and noise, scores the sentiment and checks for risk. In the Sovereign edition, any sign of distress goes straight to a person.
- 03
Draft
A larger model writes the reply using only that product's markdown files, cites them and names any gap it couldn't answer.
- 04
Gate
A reply sends itself only when every check passes. Anything else waits in the queue and as a draft in your mailbox.
Checks before a reply can send
Automatic replies start switched off. When enabled for an inbox, a draft must pass every check below before it can send. Other replies wait for review.
- Auto-send is switched on for that inbox. It starts off
- The model's confidence clears the inbox's threshold
- Sentiment is above the floor
- No risk keyword appeared
- The thread was never escalated
- The draft names no gap in the knowledge base (Sovereign edition)
- Every file it cites has been verified by a person
Every reply that does go out carries a footer saying an AI assistant wrote it, and a way to reach a human.
Two editions, one pipeline
Mailroom
The edition answering my own support mail across nine products. It classifies with Claude Haiku and drafts with Claude Sonnet, with a daily cost cap and phone alerts for anything escalated.
Sovereign edition
The same pipeline pointed at a model on your own hardware through Ollama or LM Studio, so message text never goes to an AI vendor. Startup refuses to run if the model's context window is too small for the prompt. It's in development for Sovereign AI clients.
Tracking each document's source
Everything Mailroom says comes from markdown files, and each declares whether it was scraped, generated, uploaded or verified. A file with no label counts as unverified, so nothing can pass itself off as reviewed.
Holding drafts that name a gap
A prompt is only half a rule. When a local model admitted a gap and then guessed a workaround anyway, the fix was code: any draft that names a gap is capped and held. Which model is good enough is measured on forty test mails, not assumed.
Built with
Want this for your office's inbox?
The local-model edition is part of Sovereign AI, my practice setting up private AI for professional offices.