Zurück zu den Updates
New releaseAug 7, 2026

mboxshell v0.6.2

mboxShell. Schneller Terminal-Viewer für MBOX-Dateien beliebiger Größe. Öffnet, durchsucht und exportiert E-Mails aus Gmail-Takeout-Backups (50GB+), ohne sie in den Speicher zu laden. In Rust entwickelt.

Teilen

mboxShell

Schneller Terminal-Viewer für MBOX-Dateien jeder Größe. Öffnet, durchsucht und exportiert E-Mails aus Gmail-Takeout-Backups (50 GB+), ohne sie in den Arbeitsspeicher zu laden.

License: MIT Rust

Auf Spanisch lesen / Spanisch


Warum dieses Projekt existiert

Wenn Sie Ihre E-Mails aus Gmail mit Google Takeout exportieren, erhalten Sie eine oder mehrere .mbox-Dateien, die Dutzende Gigabyte wiegen können. Es gibt kein plattformübergreifendes Terminal-Tool, mit dem Sie diese Dateien effizient öffnen, durchsuchen und navigieren können, ohne sie vollständig in den Arbeitsspeicher zu laden.

mboxShell wurde entwickelt, um dieses Problem zu lösen: Öffnen Sie eine 50-GB-MBOX in Sekunden, navigieren Sie reibungslos durch Hunderttausende von Nachrichten, suchen Sie nach Absender, Datum oder Inhalt und exportieren Sie, was Sie benötigen. Alles im Terminal, ohne GUI, ohne Server, ohne externe Abhängigkeiten.

Anwendungsfälle

  • Gmail-Backups durchsuchen (Google Takeout) mit ihren ursprünglichen Labels
  • Mail-Archive analysieren auf Servern, bei Migrationen oder Audits
  • Nachrichten suchen in MBOX-Dateien aus beliebigen Quellen (Thunderbird, Unix-Server usw.)
  • Nachrichten exportieren als EML, CSV oder Klartext zur weiteren Verarbeitung
  • Anhänge extrahieren einzeln oder als Sammelmenge
  • Mehrere MBOX-Dateien zusammenführen zu einer Datei, mit Entfernung von Duplikaten

Auch auf dem Mac: mboxViewer

Wenn Sie auf macOS eine native grafische Oberfläche bevorzugen, schauen Sie sich mboxViewer an – eine native Mac-App, die vom selben Team entwickelt wurde. Sie bietet eine vertraute Mailbox-Oberfläche, um MBOX-Dateien zu öffnen, zu durchsuchen und zu finden, ohne sie jemals in einen Mail-Client zu importieren. Ziehen Sie Ihre .mbox-Datei per Drag & Drop hinein, und Sie erhalten sofortigen Zugriff auf alle Ihre Nachrichten, Anhänge und Labels in einem sauberen nativen macOS-Fenster. Ideal für Benutzer, die die Leistung der Parsing-Engine von mboxShell mit dem Komfort einer Desktop-GUI verbinden möchten.

Auch im Browser: Online Mbox Viewer

Müssen Sie einen kurzen Blick in eine MBOX-Datei werfen, ohne etwas zu installieren? Probieren Sie Online Mbox Viewer – eine kostenlose, MIT-lizenzierte Web-App vom selben Autor. Sie öffnet und rendert .mbox-Dateien vollständig in Ihrem Browser: Es wird nichts auf einen Server hochgeladen, sodass Ihre E-Mails auf Ihrem Gerät bleiben. Perfekt für einen schnellen Blick von jedem Gerät. Quellcode unter github.com/dcarrero/online-mbox-viewer.

Funktionen

  • Lädt die Datei nie in den Speicher. Verwendet Streaming-I/O mit einem 1-MB-Puffer. Eine 100-GB-MBOX benötigt ungefähr die gleichen ~500 MB RAM wie eine 1-GB-Datei (nur der Metadatenindex lebt im Speicher).
  • Persistente Indizierung. Beim ersten Öffnen wird ein binärer Index (.mboxshell.idx) erstellt, sodass spätere Öffnungen weniger als eine Sekunde dauern.
  • Volle Gmail-Unterstützung. Erkennt X-Gmail-Labels und zeigt sie als virtuelle Ordner in einer Seitenleiste an, sodass Sie nach Posteingang, Gesendet, Markiert, benutzerdefinierten Labels usw. filtern können.
  • Korrekte Kodierungen. Dekodiert RFC-2047-Encoded-Words und unterstützt UTF-8, ISO-8859-1, Windows-1252, KOI8-R sowie jeden von encoding_rs erkannten Zeichensatz.
  • Konversations-Threading. Gruppiert Nachrichten mithilfe des JWZ-Algorithmus in Threads (derselbe, der bei Netscape/Mozilla verwendet wird).
  • Erweiterte Suche. Feldspezifische Filter (from:, subject:, date:, body:, has:attachment, label: usw.), Datumsbereiche, Größenfilter, UND/ODER-Operatoren und Negation.
  • Flexibler Export. Einzel- oder Massenexport als EML, CSV (Excel-kompatibel) und Klartext. Extraktion dekodierter Anhänge.
  • Einzelne Binärdatei. Keine Laufzeitumgebung, keine Abhängigkeiten. Eine ~5-MB-Programmdatei, die unter Linux, macOS und Windows läuft.
  • Vollständige Terminal-Benutzeroberfläche. Tastaturnavigation (vi-Stil), drei Layout-Modi, interaktive Suchleiste, konfigurierbare Tastaturkürzel.
  • Zweisprachig. Die Oberfläche ist auf Englisch und Spanisch verfügbar und wird automatisch anhand der Systemsprache erkannt.

Installation

Vorgefertigte Binärdateien (empfohlen)

Laden Sie die neueste Version für Ihre Plattform von der Releases-Seite herunter:

PlattformBinärdatei
Linux x86_64mboxshell-linux-x86_64
Linux ARM64mboxshell-linux-aarch64
Linux RISC-V 64mboxshell-linux-riscv64
FreeBSD x86_64mboxshell-freebsd-x86_64
macOS Intelmboxshell-macos-x86_64
macOS Apple Siliconmboxshell-macos-aarch64
Windows x86_64mboxshell-windows-x86_64.exe
Windows ARM64mboxshell-windows-arm64.exe

Nach dem Herunterladen machen Sie sie ausführbar und verschieben Sie sie in Ihren PATH:

# Linux / macOS
chmod +x mboxshell-*
sudo mv mboxshell-* /usr/local/bin/mboxshell

# Or place it in a user-local directory
mv mboxshell-* ~/.local/bin/mboxshell

Unter Windows verschieben Sie mboxshell-windows-x86_64.exe in einen Ordner in Ihrem PATH oder führen Sie sie direkt aus.

Aus dem Quellcode erstellen

Voraussetzungen: Rust 1.85 oder höher.

# Clone and build
git clone https://github.com/dcarrero/mboxshell.git
cd mboxshell
cargo build --release

# The binary is at target/release/mboxshell
# Install it system-wide:
sudo cp target/release/mboxshell /usr/local/bin/

# Or for the current user only:
cp target/release/mboxshell ~/.local/bin/

Cross-Kompilierung für andere Plattformen

# Add the target you need
rustup target add aarch64-apple-darwin      # macOS Apple Silicon
rustup target add x86_64-unknown-linux-gnu  # Linux x86_64
rustup target add aarch64-unknown-linux-gnu # Linux ARM64

# Build for a specific target
cargo build --release --target aarch64-apple-darwin

Per Cargo installieren

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

Schnellstart

# Open an MBOX file in the terminal UI
mboxshell mail.mbox

# Index and show statistics
mboxshell index mail.mbox
mboxshell stats mail.mbox

# Search from the command line
mboxshell search mail.mbox "from:[email protected] date:2024"
mboxshell search mail.mbox "has:attachment subject:invoice" --json

# Export messages
mboxshell export mail.mbox --format eml --output ./emails/
mboxshell export mail.mbox --format csv --output summary.csv

# Extract attachments
mboxshell attachments mail.mbox --output ./attachments/

# Merge multiple MBOX files (duplicates are removed by default)
mboxshell merge file1.mbox file2.mbox -o merged.mbox

# Merge tagging every message with the mailbox it came from
mboxshell merge Inbox.mbox Sent.mbox -o merged.mbox --source-header

# Generate shell completions
mboxshell completions bash > /etc/bash_completion.d/mboxshell
mboxshell completions zsh > ~/.zfunc/_mboxshell
mboxshell completions fish > ~/.config/fish/completions/mboxshell.fish

CLI-Befehle

BefehlBeschreibung
mboxshell [FILE]Öffnet eine Datei in der TUI (Standardaktion)
mboxshell open <path>Öffnet eine MBOX-Datei in der TUI
mboxshell index <path> [-f/--force]Erstellt den binären Index oder baut ihn neu auf
mboxshell stats <path> [--json]Zeigt Statistiken zu einer MBOX-Datei an
mboxshell search <path> <query> [--json]Durchsucht Nachrichten von der Kommandozeile aus
mboxshell export <path> -f <format> -o <output> [--query <q>]Exportiert Nachrichten (Formate: eml, csv, txt, html)
mboxshell merge <files...> -o <output> [--no-dedup] [--source-header]Führt mehrere MBOX-Dateien zu einer zusammen
mboxshell attachments <path> -o <output>Extrahiert alle Anhänge
mboxshell completions <shell>Erzeugt Shell-Komplettierungen (bash, zsh, fish, powershell, elvish)
mboxshell manpageErzeugt eine Manpage

Globale Flags:

FlagBeschreibung
-f, --forceErzwingt den Neuaufbau des Index, auch wenn bereits einer existiert
-v, --verboseErhöht die Protokollausführlichkeit (-v info, -vv debug, -vvv trace)
--lang <en|es>Erzwingt die Oberflächensprache (standardmäßig automatisch erkannt)

Merge-Flags:

FlagBeschreibung
--no-dedupÜberspringt die Erkennung doppelter Message-IDs und verkettet die Eingaben byteweise (Deduplizierung ist standardmäßig aktiviert)
--source-headerFügt in jede Nachricht einen X-Mbox-Source: <mailbox name>-Header ein, sodass ein zusammengeführtes Archiv jederzeit der Mailbox zugeordnet werden kann, aus der jede E-Mail stammt

Das Quell-Label ist der Mailbox-Name, den Sie sehen: Bei einem Apple-Mail-Export – einem Verzeichnis Inbox.mbox, das eine Datei mit dem Namen mbox enthält – liest das Tool Inbox.mbox, nicht mbox. Mailboxen, die andernfalls dasselbe Label teilen würden, werden gegeneinander eindeutig unterschieden (Work/Inbox.mbox vs. Personal/Inbox.mbox).

Terminal-UI

mboxShell-Screenshot

Tastaturkürzel

TasteAktion
j / kNächste / vorherige Nachricht
g / GErste / letzte Nachricht
PgDn / PgUpEine Seite nach unten / oben
EnterNachricht öffnen / zur Nachrichtenansicht wechseln
Shift-↑ / Shift-↓Ausgewählten Nachrichtentext scrollen (behält den Listenfokus); eine Positionsanzeige (Top / NN% / Bot) wird im Nachrichtenrahmen angezeigt
Tab / Shift-TabBedienfeld-Fokus zyklisch wechseln
EscZurück zur Liste / Popup schließen
/Suchleiste öffnen
fPopup für Suchfilter öffnen
n / NNächstes / vorheriges Suchergebnis
SpaceNachricht markieren / Markierung aufheben
*Alle markieren / Markierung aller aufheben
sSortierspalte wechseln (Datum, Von, Betreff, Größe)
SSortierrichtung umschalten
eNachricht exportieren (EML, TXT, CSV, Anhänge)
aAnhänge anzeigen (j/k zum Navigieren, Enter zum Speichern, A zum Speichern aller)
tThread-Ansicht (Konversationen) umschalten
lLabels-Seitenleiste anzeigen / fokussieren / ausblenden
hVollständige Header umschalten
rRohen Nachrichtenquelltext umschalten
1 / 2 / 3Layout: nur Liste / horizontale Aufteilung / vertikale Aufteilung
?Hilfe
qBeenden

Suchsyntax

from:[email protected]              Search by sender
to:[email protected]         Search by recipient
cc:[email protected]              Search by Cc recipient
subject:invoice                  Search in subject line
body:important text              Search in message body (full-text)
filename:report.pdf              Search by attachment file name
id:<message-id@domain>           Search by Message-ID
has:attachment                   Only messages with attachments
has:no-attachment                Only messages without attachments
label:Inbox                      Filter by Gmail label
date:2024-01                     Messages from January 2024
date:2024-01-01..2024-06-30      Date range
before:2024-06-01                Before a date
after:2024-01-01                 After a date
size:>1mb                        Messages larger than 1 MB
-subject:spam                    Exclude messages with "spam" in subject
"exact phrase"                   Search for an exact phrase
from:john subject:budget         Implicit AND (both must match)
term1 OR term2                   Explicit OR

Unterstützte Eingabeformate

FormatErweiterungBeschreibung
MBOX (mboxrd/mboxo).mboxStandardformat. Google Takeout, Thunderbird, Unix-Server

Leistung

Getestet mit echten Google-Takeout-MBOX-Dateien:

DateigrößeNachrichtenIndizierungErneutes Öffnen
500 MB~5,000~3 s< 1 s
5 GB~50,000~30 s< 1 s
50 GB~500,000~5 min< 1 s

Die Navigation in der Nachrichtenliste erfolgt dank virtuellem Scrollen (nur sichtbare Zeilen werden gerendert) sofort.

Konfiguration

Die Konfigurationsdatei befindet sich unter ~/.config/mboxshell/config.toml:

[general]
default_sort = "date"
sort_order = "desc"
date_format = "%Y-%m-%d %H:%M"
log_level = "warn"

[display]
theme = "dark"
layout = "horizontal"
show_sidebar = false
max_cached_messages = 50

[export]
default_format = "eml"
csv_separator = ","

Architektur

src/
+-- main.rs              # CLI with clap
+-- lib.rs               # Module re-exports
+-- error.rs             # Error types with thiserror
+-- config.rs            # TOML configuration
+-- mailbox_naming.rs    # Human-facing mailbox names (Apple Mail packages)
+-- i18n/                # Internationalization (EN/ES)
+-- parser/
|   +-- mbox.rs          # Streaming parser (never loads the file into memory)
|   +-- eml.rs           # Individual EML file parser
|   +-- mime.rs          # MIME decoding, multipart, charsets
|   +-- header.rs        # RFC 5322 headers, RFC 2047 encoded-words
+-- index/
|   +-- builder.rs       # Binary index construction
|   +-- reader.rs        # Index queries
|   +-- format.rs        # Binary format with SHA-256 integrity check
+-- model/
|   +-- mail.rs          # MailEntry, MailBody
|   +-- attachment.rs    # Attachment metadata
|   +-- address.rs       # RFC 5322 address parsing
+-- store/
|   +-- reader.rs        # Offset-based reading with LRU cache
+-- search/
|   +-- query.rs         # Search query parser
|   +-- metadata.rs      # Fast index search (O(n), < 200ms for 1M messages)
|   +-- fulltext.rs      # Streaming full-text search
+-- export/
|   +-- eml.rs           # Export to .eml
|   +-- csv.rs           # Export summary to CSV (UTF-8 BOM)
|   +-- text.rs          # Export to plain text
|   +-- attachment.rs    # Attachment extraction
|   +-- mbox.rs          # MBOX merge with deduplication and source header
+-- tui/
    +-- app.rs           # Global state (Elm Architecture)
    +-- event.rs         # Keyboard event handling
    +-- ui.rs            # Layout and render dispatch
    +-- threading.rs     # JWZ algorithm for conversation threads
    +-- theme.rs         # Color theme
    +-- widgets/         # Visual components
        +-- mail_list.rs       # List with virtual scrolling
        +-- mail_view.rs       # Message viewer with scroll
        +-- sidebar.rs         # Labels/folders panel
        +-- header_bar.rs      # Top bar
        +-- status_bar.rs      # Status bar
        +-- search_bar.rs      # Search bar
        +-- search_popup.rs    # Search filter popup
        +-- help_popup.rs      # Help popup
        +-- attachment_popup.rs # Attachment popup
        +-- export_popup.rs     # Export popup

Wichtige Abhängigkeiten

CrateZweck
ratatui + crosstermTerminal-UI
mail-parserMIME/RFC-5322-Parsing
encoding_rsZeichensatz-Dekodierung
chronoDatums- und Zeitzonenverwaltung
clapCLI-Argumentanalyse
serde + bincodeIndex-Serialisierung
sha2Index-Integritätsprüfung
lruCache für dekodierte Nachrichten
tracingStrukturierte Protokollierung

Sponsoren

mboxshell wird offen entwickelt und unterstützt von:

Colorvivo      Stackscale

  • Colorvivo — Experten für WordPress, KI und digitale Medien.
  • Stackscale — Experten für Private-Cloud-Infrastruktur.

Wenn Ihr Unternehmen mboxshell nützlich findet und die weitere Entwicklung unterstützen möchte, lesen Sie .github/FUNDING.yml oder kontaktieren Sie uns über carrero.es.

Dokumentation

Das vollständige Benutzerhandbuch deckt jeden Befehl, jedes Tastaturkürzel, jeden Suchoperator, jede Exportoption und jeden Konfigurationsschlüssel ab:

Changelog

Die vollständige Versionshistorie finden Sie in CHANGELOG.md.

Lizenz

MIT - Copyright (c) 2026 David Carrero Fernandez-Baillo - https://carrero.es

Quellcode: https://github.com/dcarrero/mboxshell

Kategorien