AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Turn an mbox or PST file into a static website that looks and works like Gmail: conversations, labels, attachments, Gmail's search operators and in-browser semantic search. There is no server. The build writes Parquet files you can host on Cloudflare R2 or any static file host, and the viewer is a static site that queries them from the browser with DuckDB-WASM.
It was built for public-records and FOIA responses, which tend to arrive as a PST or mbox that most people can't open, let alone search or share.檢視完整 README ↗Turn an mbox or PST file into a static website that looks and works like Gmail: conversations, labels, attachments, Gmail's search operators and in-browser semantic search. There is no server. The build writes Parquet files you can host on Cloudflare R2 or any static file host, and the viewer is a static site that queries them from the browser with DuckDB-WASM.
It was built for public-records and FOIA responses, which tend to arrive as a PST or mbox that most people can't open, let alone search or share.
Try the live demo (a fictional mailbox, served exactly as the docs describe: viewer on Vercel, data on Cloudflare R2) · Documentation
uv tool install git+https://github.com/rahimnathwani/mailbox-viewer
Smart search embeddings and building the viewer need Node.js 20+; PST input needs readpst (brew install libpst). Or clone the repository and use uv run mbv, or use the Docker image. Details: getting started.
mbv build ~/Downloads/response.pst --slug county-2026-05 --title "County records, May 2026"
mbv preview # http://localhost:8000/county-2026-05
mbv publish county-2026-05 # upload to Cloudflare R2
Deploy the viewer once (Vercel, Netlify, GitHub Pages or any static host) with VITE_DATA_URL pointing at the bucket. From then on, each new mailbox is just build and publish. See publishing.
| Any mailbox export | .pst/.ost (via readpst), mbox, Maildir/Maildir++, .eml; several at once, deduplicated, folders kept as labels |
| Gmail's interface | Conversations, labels, stars, read state, keyboard shortcuts, dark mode, mobile layout |
| Gmail's search | from:, to:, subject:, has:attachment, filename:, before:/after:, label:, "phrases", -exclusions, OR (all operators) |
| Search inside attachments | Text extracted from PDF, Word, Excel, PowerPoint, RTF and attached emails |
| Smart search | A small embedding model runs in the browser and finds messages by meaning |
| Static and cheap | Opening a conversation fetches ~0.5 MB, even from a 50,000-message mailbox; nothing to run or patch |
| Safe by default | Email HTML is sanitized and sandboxed; remote images and tracking pixels stay blocked until you ask |
| Open data | Every mailbox is a set of documented Parquet tables anyone can query with DuckDB, Polars or pandas |
| Conversation | Search |
|---|---|
mbv build parses the mail, rebuilds conversations, extracts attachment text, and writes Parquet tables plus a word index sorted by term, so a search downloads only the few row groups that hold its words. Embeddings are computed with the same transformers.js model the browser later uses for queries. In the browser, DuckDB-WASM reads byte ranges of those files; nothing else is needed on the server. Architecture covers the design decisions, performance and security model.
There is no login: anyone with the link can read what you publish, so review a mailbox with mbv preview before publishing it. Nothing is redacted for you.
Bug reports and pull requests are welcome; see CONTRIBUTING.md. Please report security issues privately (SECURITY.md).