cd /news/ai-tools/show-hn-mailbox-viewer-publish-foia-… · home › topics › ai-tools › article
[ARTICLE · art-148937] src=github.com ↗ pub= topic=ai-tools verified=true sentiment=↑ positive

Show HN: Mailbox Viewer – publish FOIA email dumps as a static Gmail-like site

Developer rahimnathwani released Mailbox Viewer (mbv), an MIT-licensed open-source tool that converts PST, mbox, or Maildir mailbox files into parquet files, a word index, and embeddings for hosting as a static Gmail-style site. The mbv build command output is uploaded to static hosts supporting HTTP range requests, such as Cloudflare R2, with a single front-end viewer (e.g., Vercel) serving any number of mailboxes and the browser querying Parquet files via DuckDB-WASM with no backend computation. The viewer rebuilds conversations including Outlook Thread-Index data, keeps folders as labels, supports Gmail search operators (from:, has:attachment, before:, OR, "phrases"), searches text inside PDF and Office attachments, adds in-browser semantic search, and gives every view a deep-linkable URL.

read1 min views1 publishedOct 10, 2026

Responses to public-records (FOIA, or California PRA) requests often arrive as PST or mbox files, which 'normal' people don't know how to open. If they're lucky they can import them into Apple mail or the Outlook desktop client.

But it's hard to share with others, and impossible to link to a specific thread or a specific spot in a specific thread.

Jmail (https://jmail.world), the Gmail-style viewer for the Epstein emails, was heavily upvoted on HN, because it felt so easy to use. I had hoped the team would open source the code, but I don't think they did.

My first attempt at my own version (made for a specific pst file I received) was usable, but had some limitations. Recently, I threw Claude Opus 5.5 (xhigh) at the problem.

This is the result.

The mbv build command turns a mailbox (PST, mbox or Maildir) into:

  • a set of parquet files

  • a word index

  • embeddings.

You upload those to any static host that support HTTP range requests (e.g. Cloudflare R2) and deploy one front-end viewer (e.g. Vercel) for any number of mailboxes. There's no backend computation. The browser queries the Parquet files with DuckDB-WASM over HTTP range requests.

It rebuilds conversations (including from Outlook's Thread-Index), keeps folders as labels, supports Gmail's search operators (from:, has:attachment, before:, OR, "phrases"), searches text inside PDF and Office attachments, and adds semantic search with a small embedding model that runs in the browser.

Every view has its own URL, so you can deep link to a search and a conversation. This link searches a school district mailbox for "straight white male" and opens the matching thread with the hits highlighted:

[https://mail.ocaho.com/youcubed-2026-03#search/Straight%20wh...](https://mail.ocaho.com/youcubed-2026-03#search/Straight%20white%20male/c7d7869c3947fc41)

Demo with a fictional mailbox: [https://mail.ocaho.com/demo](https://mail.ocaho.com/demo)

Code (MIT): [https://github.com/rahimnathwani/mailbox-viewer](https://github.com/rahimnathwani/mailbox-viewer)

Comments URL: [https://news.ycombinator.com/item?id=50037841](https://news.ycombinator.com/item?id=50037841)

Points: 1

── more in #ai-tools 4 stories · sorted by recency
── more on @mailbox viewer 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-mailbox-view…] indexed:0 read:1min 2026-10-10 · —