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