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.2.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. F1 shows the full syntax inside the app.

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. HTML pages carry the message's inline images, so they show up with nothing alongside.

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.2.0, shipped on October 18, 2026.

v1.2.0

October 18, 2026

Inline images that stay in HTML exports

  • HTML exports now embed the message's inline images (#49). Each <img src="cid:…"> is replaced with the image from the message itself as a data: URI, so logos and pictures show up with no files alongside and nothing to download. Before, they went missing. On by default in export -f html and in the app's HTML export; --no-inline-images turns it off.
  • Only PNG, JPEG, GIF and WebP are embedded, and they are recognised by their first bytes rather than by the declared type, so an SVG — which can carry scripts — is never embedded.
  • An unknown theme in the config file used to be ignored without a word; now it gets a warning like any other invalid value, and the warning is translated. 5 new tests (316 in total).
Release notes v1.2.0

v1.1.0

October 18, 2026

The full search syntax, without leaving the app

  • The help (?) now lists every search operator — from:, to:, cc:, subject:, body:, filename:, label:, id:, has:attachment, date:, date ranges, after:/before:, size:, OR and - — with the date format and a pointer to the manual (#48). Before, it showed only 8 of the 15. 3 new tests (311 in total).
  • F1 opens the help straight at the search syntax, also from the search bar, where ? is part of the query; Esc takes you back to the query just as you left it. On the command line, search --help and export --help end with the same operator list, in English or Spanish.
  • Security: ammonia, the library that sanitizes HTML exports, is updated to 4.2.4 for three RUSTSEC advisories (RUSTSEC-2026-0373, RUSTSEC-2021-0157 and RUSTSEC-2021-0158). Earlier versions of mboxShell are affected, so updating is recommended.
Release notes v1.1.0

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
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