アップデート一覧に戻る
New releaseSep 5, 2026

mboxshell v0.7.3

mboxShell. あらゆるサイズのMBOXファイルに対応する高速ターミナルビューア。Gmail Takeout バックアップ(50GB以上)から、メモリに読み込むことなくメールを開く・検索・エクスポートできます。Rustで構築されています。

共有

mboxShell

あらゆるサイズのMBOXファイルに対応した高速ターミナルビューア。Gmail Takeoutバックアップ(50 GB以上)のメールをメモリに読み込むことなく開き、検索し、エクスポートできます。

License: MIT Rust

Leer en Espanol / Spanish


このプロジェクトが存在する理由

Google Takeoutを使ってGmailからメールをエクスポートすると、数十ギガバイトにもなる .mbox ファイルが1つ以上得られます。さらに、所有するGoogleグループごとに1つのメールボックスが追加されますが、これは見落としやすく、Gmailのエクスポート自体よりも大きくなることがあります。これらのファイルをメモリに完全に読み込むことなく、効率的に開き、検索し、閲覧できるクロスプラットフォームのターミナルツールは存在しません。

mboxShell はこの問題を解決するために作られました。50 GBのMBOXを数秒で開き、数十万件のメッセージをスムーズにナビゲートし、送信者、日付、内容で検索し、必要なものをエクスポートできます。すべてターミナルから、GUIなし、サーバーなし、外部依存なしで実現します。

ユースケース

  • Gmailバックアップ(Google Takeout)を元のラベル付きで閲覧する
  • 所有するグループを読む — Takeoutが独自のメールボックスとしてエクスポートするもので、しばしばアーカイブ内で最大のファイルになります
  • サーバー上、移行中、または監査中にメールアーカイブを分析する
  • あらゆるソース(Thunderbird、Unixサーバーなど)のMBOXファイル内のメッセージを検索する
  • さらなる処理のためにメッセージをEML、CSV、またはプレーンテキストにエクスポートする
  • 添付ファイルを個別または一括で抽出する
  • 複数のMBOXファイルを1つにマージし、重複を削除する

Macでも: mboxViewer

macOSでネイティブのグラフィカルな体験を好む場合は、mboxViewerをチェックしてください。同じチームが開発したネイティブMacアプリです。メールクライアントにインポートすることなく、MBOXファイルを開き、閲覧し、検索するための使い慣れたメールボックス形式のインターフェースを提供します。.mbox ファイルをドラッグ&ドロップするだけで、すべてのメッセージ、添付ファイル、ラベルにクリーンなmacOSネイティブウィンドウで即座にアクセスできます。mboxShellのパースエンジンのパワーをデスクトップGUIの快適さで求めるユーザーに最適です。

ブラウザでも: Online Mbox Viewer

何もインストールせずにMBOXファイルを覗きたいですか?同じ作者による無料のMITライセンスのWebアプリ、Online Mbox Viewerをお試しください。.mbox ファイルを完全にブラウザ内で開いてレンダリングします。サーバーには何もアップロードされないため、メールはあなたのマシン上に留まります。どのデバイスからでも素早く確認するのに最適です。ソースコードは github.com/dcarrero/online-mbox-viewer にあります。

機能

  • ファイルをメモリに読み込みません。 1 MBのバッファを使用したストリーミングI/Oを使用します。100 GBのMBOXは、1 GBのものとほぼ同じ約500 MBのRAMを使用します(メタデータインデックスのみがメモリ上に存在します)。
  • 永続的なインデックス作成。 初回のオープン時にバイナリインデックス(.mboxshell.idx)を作成するため、以降のオープンは1秒未満で完了します。
  • 完全なGmailサポート。 X-Gmail-Labels を検出し、サイドバーパネルに仮想フォルダとして表示し、受信トレイ、送信済み、スター付き、カスタムラベルなどでフィルタリングできます。
  • Googleグループのメールボックス。 Takeoutアーカイブが所有する各グループに対して同梱する topics.mbox ファイルを読み込み、無意味なファイル名ではなくグループ名を付け、グループを仮想ラベルとして表示し、正確な X-GM-THRID IDで会話をスレッド化します。
  • 正確なエンコーディング。 RFC 2047エンコードワードをデコードし、UTF-8、ISO-8859-1、Windows-1252、KOI8-R、および encoding_rs が認識するあらゆる文字セットをサポートします。
  • 会話のスレッド化。 JWZアルゴリズム(Netscape/Mozillaで使用されているものと同じ)を使用してメッセージをスレッドにグループ化します。メールボックス自体が会話IDを持つ場合はそれを使用します。
  • 高度な検索。 フィールド固有のフィルタリング(from:subject:date:body:has:attachmentlabel: など)、日付範囲、サイズフィルター、AND/OR演算子、否定。
  • 柔軟なエクスポート。 個別または一括でEML、CSV(Excel互換)、プレーンテキストにエクスポート。デコードされた添付ファイルの抽出。
  • 単一バイナリ。 ランタイムなし、依存関係なし。Linux、macOS、Windowsで動作する約5 MBの実行ファイル。
  • 完全なターミナルUI。 キーボードナビゲーション(viスタイル)、3つのレイアウトモード、インタラクティブな検索バー、設定可能なショートカット。
  • バイリンガル。 インターフェースは英語とスペイン語で利用可能で、システムロケールから自動検出されます。

インストール

ビルド済みバイナリ(推奨)

Releases ページからお使いのプラットフォーム用の最新リリースをダウンロードしてください:

プラットフォームバイナリ
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

ダウンロード後、実行可能にして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

Windowsでは、mboxshell-windows-x86_64.exePATH 内のフォルダに移動するか、直接実行してください。

ソースからビルド

要件: Rust 1.85以降。

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

他のプラットフォーム向けのクロスコンパイル

# 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

Cargo経由でインストール

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

クイックスタート

# 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

# Hand over only part of an archive: a new mailbox with just the matches
mboxshell export mail.mbox --format mbox --query "from:[email protected]" -o handover.mbox

# 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コマンド

コマンド説明
mboxshell [FILE]TUIでファイルを開く(デフォルトのアクション)
mboxshell open <path>TUIでMBOXファイルを開く
mboxshell index <path> [-f/--force]バイナリインデックスを構築または再構築する
mboxshell stats <path> [--json]MBOXファイルに関する統計を表示する
mboxshell search <path> <query> [--json]コマンドラインからメッセージを検索する
mboxshell export <path> -f <format> -o <output> [--query <q>]メッセージをエクスポートする(フォーマット: eml, csv, txt, html, mbox)
mboxshell merge <files...> -o <output> [--no-dedup] [--source-header]複数のMBOXファイルを1つにマージする
mboxshell attachments <path> -o <output>すべての添付ファイルを抽出する
mboxshell completions <shell>シェル補完を生成する(bash, zsh, fish, powershell, elvish)
mboxshell manpagemanページを生成する

グローバルフラグ:

フラグ説明
-f, --forceインデックスが存在しても強制的に再構築する(export では -f--format です — そこでは --force と明示してください)
-v, --verboseログの詳細度を上げる(-v info, -vv debug, -vvv trace)
--lang <en|es>インターフェース言語を強制する(デフォルトでは自動検出)

マージフラグ:

フラグ説明
--no-dedup重複Message-IDの検出をスキップし、入力をバイト単位で連結する(デデュープはデフォルトで有効)
--source-headerすべてのメッセージに X-Mbox-Source: <mailbox name> ヘッダを挿入し、マージされたアーカイブが各メールの元のメールボックスまで追跡可能になるようにする

ソースラベルは表示されるメールボックス名です。Apple Mailのエクスポート — Inbox.mbox ディレクトリに文字通り mbox という名前のファイルが含まれている場合 — では mbox ではなく Inbox.mbox と表示されます。同じラベルを共有することになるメールボックスは互いに区別されます(Work/Inbox.mboxPersonal/Inbox.mbox)。

ターミナルUI

mboxShell screenshot

キーボードショートカット

キーアクション
j / k次のメッセージ / 前のメッセージ
g / G最初のメッセージ / 最後のメッセージ
PgDn / PgUpページダウン / ページアップ
Enterメッセージを開く / メッセージビューに切り替える
Shift-↑ / Shift-↓選択したメッセージ本文をスクロールする(リストのフォーカスを維持)。位置インジケータ(Top / NN% / Bot)がメッセージの境界に表示されます
Tab / Shift-Tabパネルのフォーカスを循環させる
Escリストに戻る / ポップアップを閉じる
/検索バーを開く
f検索フィルタポップアップを開く
n / N次の検索結果 / 前の検索結果
Spaceメッセージをマーク / マーク解除
*すべてをマーク / マーク解除
sソート列を循環させる(Date, From, Subject, Size)
Sソート方向を切り替える
eメッセージをエクスポートする(EML, TXT, CSV, Attachments)
a添付ファイルを表示する(j/kでナビゲート、Enterで保存、Aですべて保存)
tスレッド(会話)ビューを切り替える
lラベルサイドバーを表示 / フォーカス / 非表示
h完全なヘッダを切り替える
r生のメッセージソースを切り替える
1 / 2 / 3レイアウト: リストのみ / 水平分割 / 垂直分割
?ヘルプ
q終了

検索構文

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 (that day excluded)
after:2024-01-01                 From a date on (that day included)
after:2024-01-01 before:2025-01-01   All of 2024
size:>1mb                        Messages larger than 1 MB
size:>1mb size:<5mb              Between 1 and 5 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
from:a OR from:b subject:budget  OR binds tighter: (a OR b) AND subject

サポートされている入力フォーマット

フォーマット拡張子説明
MBOX (mboxrd/mboxo).mbox標準フォーマット。Google Takeout、Thunderbird、Unixサーバー
Google Groups exporttopics.mboxTakeoutアーカイブ内、<group>@googlegroups.com/ にあります。ファイル名はローカライズされている(temas.mbox など)ため、メールボックスはグループにちなんで命名されます — docs/GOOGLE-GROUPS.md を参照
Apple Mail packageName.mbox/mbox内部のファイルが読み込まれます。メールボックスはパッケージにちなんで命名されます

パフォーマンス

実際のGoogle Takeout MBOXファイルでテスト済み:

ファイルサイズメッセージ数インデックス作成再オープン
500 MB~5,000~3 s< 1 s
5 GB~50,000~30 s< 1 s
50 GB~500,000~5 min< 1 s

メッセージリストのナビゲーションは、仮想スクロール(表示されている行のみがレンダリングされます)のおかげで瞬時に行えます。

設定

設定ファイルは ~/.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 = ","

アーキテクチャ

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

主要な依存関係

クレート目的
ratatui + crosstermターミナルUI
mail-parserMIME/RFC 5322パース
encoding_rs文字セットデコード
chrono日付とタイムゾーン
clapCLI引数パース
serde + bincodeインデックスのシリアライズ
sha2インデックスの整合性検証
lruデコード済みメッセージキャッシュ
tracing構造化ログ

スポンサー

mboxshell はオープンに開発されており、以下によってサポートされています:

Colorvivo      Stackscale

  • Colorvivo — WordPress、AI、デジタルメディアのエキスパート。
  • Stackscale — プライベートクラウドインフラのエキスパート。

あなたの会社が mboxshell を有用だと感じ、その継続的な開発を支援したい場合は、.github/FUNDING.yml を参照するか、carrero.es からご連絡ください。

ドキュメント

完全なユーザーマニュアルは、すべてのコマンド、キーボードショートカット、検索演算子、エクスポートオプション、設定キーを網羅しています:

変更履歴

完全なリリース履歴は CHANGELOG.md を参照してください。

ライセンス

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

ソースコード: https://github.com/dcarrero/mboxshell

カテゴリ