Skip to content

azmke/maildir-viewer

Repository files navigation

Maildir Viewer

A local, read-only desktop viewer for Maildir email archives β€” private, fast, and completely offline.

Many people use tools like isync/mbsync to keep offline backups of their mailboxes as Maildir directories. Until now, browsing those backups meant either firing up a full mail client configured to point at local files, or grepping through raw .eml files. Maildir Viewer is a lightweight, privacy-first alternative: it indexes your Maildir locally and gives you a proper mail client interface β€” without ever sending your data anywhere.

License: MIT Platform Node.js

Screenshots

Maildir Viewer screenshot

Features

  • Multiple accounts β€” add any number of Maildir directories side by side
  • Full-text search β€” search across sender, recipient, subject, body, and attachment names using SQLite FTS5
  • Per-folder search hit counts β€” see at a glance how many results each folder contains
  • HTML email rendering β€” secure sandboxed iframe with DOMPurify and strict Content Security Policy
  • Clickable links β€” external links open in the system browser; hover reveals the URL in a status bar
  • Attachments β€” view file list and save to disk
  • Incremental indexing β€” only new and changed files are re-indexed on refresh
  • Dark and light mode β€” follows your system preference, switchable in settings
  • English and German UI β€” language switchable at runtime
  • Read-only β€” your Maildir files are never modified or deleted

Installation

Download the latest release for your platform from the Releases page:

Platform Format
Windows NSIS installer (.exe)
macOS Disk image (.dmg)
Linux AppImage or .deb

Building from source

Requirements: Node.js 18 or later, npm 9 or later.

git clone https://github.com/azmke/maildir-viewer.git
cd maildir-viewer
npm install

# Build for the current platform
npm run package

# Or target a specific platform
npm run package:win    # Windows
npm run package:mac    # macOS
npm run package:linux  # Linux

Packaged output is written to dist/.

Development

npm install
npm run dev     # Start with hot reload
npm run build   # Production build only
npm test        # Run tests

How it works

  1. Add a Maildir directory via the sidebar. The app validates the path and starts indexing in the background.
  2. Browse your mail in the three-column layout β€” accounts and folders on the left, message list in the center, full message on the right.
  3. Search using the toolbar search bar. Results appear in the current folder; the sidebar shows the hit count for every other folder simultaneously.
  4. Refresh at any time to pick up new or changed messages without re-indexing everything.

The local database is stored at ~/.maildir-viewer/database.db. Deleting it causes a full re-index on next launch. Your original Maildir files are never touched.

Contributing

Bug reports and pull requests are welcome. Please open an issue first to discuss larger changes.

License

MIT

About

A local, read-only desktop viewer for Maildir email archives - private, fast, and completely offline. πŸ“§

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors