アップデート一覧に戻る
New releaseAug 7, 2026

mboxshell v0.6.2

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

共有

mboxShell

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

License: MIT Rust

Leer en Espanol / Spanish


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

Google TakeoutでGmailからメールをエクスポートすると、数十ギガバイトにもなる1つ以上の.mboxファイルが生成されます。これらのファイルをメモリに完全に読み込むことなく、効率的に開いたり、検索したり、閲覧したりできるクロスプラットフォームのターミナルツールは、これまで存在しませんでした。

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

ユースケース

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

Mac版: mboxViewer

macOSでネイティブなグラフィカル体験をお望みなら、mboxViewer をご覧ください。同じチームが開発したネイティブMacアプリです。メールクライアントにインポートすることなくMBOXファイルを開いて閲覧・検索できる、おなじみのメールボックススタイルのインターフェースを提供します。.mboxファイルをドラッグ&ドロップするだけで、すべてのメッセージ、添付ファイル、ラベルにクリーンなmacOSネイティブウィンドウですぐにアクセスできます。mboxShellの解析エンジンのパワーを、デスクトップGUIの快適さとともに活用したいユーザーに最適です。

ブラウザ版: Online Mbox Viewer

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

機能

  • ファイルをメモリに読み込まない。 1 MBバッファを使用したストリーミングI/Oを採用。100 GBのMBOXでも1 GBのファイルと同程度の約500 MBのRAMしか使用しません(メモリに常駐するのはメタデータインデックスのみです)。
  • 永続的インデックス。 初回オープン時にバイナリインデックス(.mboxshell.idx)を作成するため、2回目以降のオープンは1秒もかかりません。
  • Gmail完全サポート。 X-Gmail-Labelsをサイドバーパネルの仮想フォルダとして検出・表示し、受信トレイ、送信済み、スター付き、カスタムラベルなどでフィルタリングできます。
  • 正しいエンコーディング。 RFC 2047 encoded-wordsをデコードし、UTF-8、ISO-8859-1、Windows-1252、KOI8-R、およびencoding_rsが認識するあらゆる文字セットをサポートします。
  • 会話スレッド化。 JWZアルゴリズム(Netscape/Mozillaと同じもの)を使用してメッセージをスレッドにグループ化します。
  • 高度な検索。 フィールド指定フィルタ(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

# 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)
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 manpageマニュアルページを生成する

グローバルフラグ:

フラグ説明
-f, --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のエクスポートの場合 — 実際にはmboxという名前のファイルを含むディレクトリInbox.mbox — は、mboxではなくInbox.mboxと読み取られます。同じラベルになるメールボックスは互いに区別されます(Work/Inbox.mboxPersonal/Inbox.mbox など)。

ターミナルUI

mboxShellのスクリーンショット

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

キー操作
j / k次のメッセージ / 前のメッセージ
g / G最初のメッセージ / 最後のメッセージ
PgDn / PgUp1ページ下 / 1ページ上
Enterメッセージを開く / メッセージ表示に切り替え
Shift-↑ / Shift-↓選択中のメッセージ本文をスクロール(リストのフォーカスは維持); 位置インジケーター(Top / NN% / Bot)がメッセージの境界に表示される
Tab / Shift-Tabパネルのフォーカスを循環
Esc一覧に戻る / ポップアップを閉じる
/検索バーを開く
f検索フィルタのポップアップを開く
n / N次の検索結果 / 前の検索結果
Spaceメッセージをマーク / マーク解除
*すべてをマーク / マーク解除
sソート列を切り替え(日付、送信者、件名、サイズ)
Sソート順を切り替え
eメッセージをエクスポート(EML、TXT、CSV、添付ファイル)
a添付ファイルを表示(j/kで移動、Enterで保存、Aですべて保存)
tスレッド(会話)表示を切り替え
lラベルサイドバーを表示 / フォーカス / 非表示
h全ヘッダーを切り替え
r生のメッセージソースを切り替え
1 / 2 / 3レイアウト: 一覧のみ / 水平分割 / 垂直分割
?ヘルプ
q終了

検索構文

from:[email protected]              送信者で検索
to:[email protected]         受信者で検索
cc:[email protected]              Cc受信者で検索
subject:invoice                  件名で検索
body:important text              メッセージ本文で検索(全文検索)
filename:report.pdf              添付ファイル名で検索
id:<message-id@domain>           Message-IDで検索
has:attachment                   添付ファイル付きのメッセージのみ
has:no-attachment                添付ファイルなしのメッセージのみ
label:Inbox                      Gmailラベルでフィルタ
date:2024-01                     2024年1月のメッセージ
date:2024-01-01..2024-06-30      日付範囲
before:2024-06-01                指定日より前
after:2024-01-01                 指定日より後
size:>1mb                        1 MBより大きいメッセージ
-subject:spam                    件名に"spam"を含むメッセージを除外
"exact phrase"                   正確なフレーズを検索
from:john subject:budget         暗黙のAND(両方一致する必要あり)
term1 OR term2                   明示的なOR

サポートされている入力形式

形式拡張子説明
MBOX (mboxrd/mboxo).mbox標準形式。Google Takeout、Thunderbird、Unixサーバー

パフォーマンス

実際の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              # clapを使用したCLI
+-- lib.rs               # モジュールの再エクスポート
+-- error.rs             # thiserrorを使用したエラータイプ
+-- config.rs            # TOML設定
+-- mailbox_naming.rs    # 人間向けのメールボックス名(Apple Mailパッケージ)
+-- i18n/                # 国際化(EN/ES)
+-- parser/
|   +-- mbox.rs          # ストリーミングパーサー(ファイルをメモリに読み込まない)
|   +-- eml.rs           # 個別EMLファイルのパーサー
|   +-- mime.rs          # MIMEデコード、マルチパート、文字セット
|   +-- header.rs        # RFC 5322ヘッダー、RFC 2047 encoded-words
+-- index/
|   +-- builder.rs       # バイナリインデックスの構築
|   +-- reader.rs        # インデックスクエリ
|   +-- format.rs        # SHA-256整合性チェック付きバイナリ形式
+-- model/
|   +-- mail.rs          # MailEntry、MailBody
|   +-- attachment.rs    # 添付ファイルのメタデータ
|   +-- address.rs       # RFC 5322アドレス解析
+-- store/
|   +-- reader.rs        # LRUキャッシュを使用したオフセットベースの読み取り
+-- search/
|   +-- query.rs         # 検索クエリのパーサー
|   +-- metadata.rs      # 高速インデックス検索(O(n)、100万メッセージで200ms未満)
|   +-- fulltext.rs      # ストリーミング全文検索
+-- export/
|   +-- eml.rs           # .emlへのエクスポート
|   +-- csv.rs           # CSVへの要約エクスポート(UTF-8 BOM)
|   +-- text.rs          # プレーンテキストへのエクスポート
|   +-- attachment.rs    # 添付ファイルの抽出
|   +-- mbox.rs          # 重複除去とソースヘッダー付きMBOXマージ
+-- tui/
    +-- app.rs           # グローバル状態(Elmアーキテクチャ)
    +-- event.rs         # キーボードイベント処理
    +-- ui.rs            # レイアウトとレンダリングのディスパッチ
    +-- threading.rs     # 会話スレッド用のJWZアルゴリズム
    +-- theme.rs         # カラーテーマ
    +-- widgets/         # ビジュアルコンポーネント
        +-- mail_list.rs       # 仮想スクロール付きリスト
        +-- mail_view.rs       # スクロール付きメッセージビューア
        +-- sidebar.rs         # ラベル/フォルダパネル
        +-- header_bar.rs      # トップバー
        +-- status_bar.rs      # ステータスバー
        +-- search_bar.rs      # 検索バー
        +-- search_popup.rs    # 検索フィルタのポップアップ
        +-- help_popup.rs      # ヘルプポップアップ
        +-- attachment_popup.rs # 添付ファイルのポップアップ
        +-- export_popup.rs     # エクスポートのポップアップ

主要な依存関係

クレート用途
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

カテゴリ