Skip to content
Mbox Viewer Pro

mboxShell

The free terminal tool behind Mbox Viewer. Open, search and export MBOX files of any size — right from your shell, on Linux, macOS, FreeBSD and Windows.

Latest v1.0.0 Free & open source Written in Rust MIT
mboxshell
mboxShell running in a terminal, showing an MBOX archive with its message list, folders and reading pane.

A full MBOX toolkit in your terminal

Everything you need to work with huge email archives — reading, searching, threading and exporting — with no GUI and no cloud.

Any file size

A streaming parser with a 1 MB buffer opens 50 GB+ Gmail Takeout backups while keeping RAM around 500 MB.

Sub-second re-opens

A persistent binary index — verified with SHA-256 — reopens even the largest archive in under a second.

Field-based search

Filter with from:, subject:, date:, body:, has:attachment and label:, plus exact phrases and an OR that groups alternatives: a OR b c reads as (a OR b) AND c — in the TUI or from the command line.

Gmail labels & Google Groups

Detects X-Gmail-Labels and turns them into virtual folders you can browse and filter by. In a Google Takeout archive, each Groups mailbox appears under its own group name.

Conversation threading

Groups related messages into conversations with the classic JWZ threading algorithm, using Google's own conversation id (X-GM-THRID) when the mailbox carries one.

Export anywhere

Save messages as MBOX, Maildir, EML, CSV, TXT or HTML, and extract attachments individually or in bulk.

Merge & dedupe

Combine several MBOX files into one, with optional deduplication so nothing is imported twice.

Full terminal UI

A ratatui-based TUI with three layout modes, vi-style navigation, dark, light and no-color themes, a cursor that screen readers can follow, and shell completions for bash, zsh, fish, PowerShell and elvish.

Cross-platform & bilingual

A single ~5 MB binary with no runtime dependencies. Runs on Linux, macOS, FreeBSD and Windows, with an English/Spanish interface.

What's new

The three most recent releases. The latest, v1.0.0, shipped on October 6, 2026.

v1.0.0

October 6, 2026

First stable release, with a config file that finally works

  • The first stable release. From now on the command line and the config file follow Semantic Versioning (SemVer): anything that breaks them will only arrive in a new major version. 7 new tests (308 in total).
  • New mboxshell config [path|show|defaults] command (#40). path says where the config file is and whether it exists yet; show prints it with a warning for each value it ignores; defaults prints every option with its default value as a commented file. It changes nothing and only writes to standard output, so redirecting defaults into a file gives you a starting point.
  • Most config file options used to do nothing: only the log level, the theme and the two attachment options were read. default_sort, sort_order, date_format, layout, show_sidebar, max_cached_messages, csv_separator and cache_dir now work, and an invalid value falls back to its default with a warning instead of being silently ignored. On macOS the file is ~/Library/Application Support/mboxshell/config.toml, not ~/.config/mboxshell as the README said.
Release notes v1.0.0

v0.9.0

October 5, 2026

Exports that match their attachment folders

  • export now takes --dirname dts|seq-no|seq-no0 and --seq-width N, like attachments and with the same defaults from the config file (#39). With seq-no, each EML, TXT or HTML file is named after its message's attachment folder — 0007.html goes with the folder 0007/ — so an exported email and its attachments are easy to pair up, and TXT and HTML exports also show that folder under the attachment list. dts, the default, keeps the usual names.
  • In a mailbox that starts with a UTF-8 byte order mark (BOM), the first message was exported wrong (#38): its EML or Maildir file lost the subject, and export --format mbox wrote a duplicate separator in front of it. The BOM is now skipped, so the first message exports like any other. 7 new tests (301 in total).
Release notes v0.9.0

v0.8.2

October 4, 2026

No more crash when exporting accented names

  • Fixes a crash when exporting messages whose subject or sender has an accented letter near the start (#37). The Windows reserved-name check added in v0.8.0 cut file names in the middle of a multi-byte character; it affected HTML, EML and text exports and attachment extraction on every platform.
Release notes v0.8.2
Read the full changelog

One command away

mboxshell
$ mboxshell archive.mbox
# Open the interactive terminal UI
$ mboxshell search archive.mbox "from:jane has:attachment"
# Search straight from the command line
$ mboxshell export archive.mbox -f eml -o out/
# Export messages to MBOX, Maildir, EML, CSV, TXT or HTML
$ mboxshell merge a.mbox b.mbox -o all.mbox --source-header
# Merge files — duplicates removed by default (--no-dedup to keep them), noting which mailbox each message came from
$ mboxshell attachments archive.mbox -o files/
# Extract every attachment at once

Install it

Grab a pre-built binary for Linux, macOS, FreeBSD or Windows from the releases page, or build it yourself with Cargo:

$ cargo install --git https://github.com/dcarrero/mboxshell.git

The open-source engine behind Mbox Viewer

Mbox Viewer for Mac and Windows grew out of mboxShell. The app wraps the same idea — reading MBOX files of any size, fully offline — in a polished native interface with search, labels, threading and EML support. Prefer the terminal? mboxShell is free and MIT-licensed.

github.com/dcarrero/mboxshell