Voltar às atualizações
New releaseAug 7, 2026

mboxshell v0.6.2

mboxShell. Visualizador de terminal rápido para arquivos MBOX de qualquer tamanho. Abra, pesquise e exporte e-mails de backups do Gmail Takeout (50GB+) sem carregá-los na memória. Criado em Rust.

Compartilhar

mboxShell

Visualizador de terminal rápido para arquivos MBOX de qualquer tamanho. Abra, pesquise e exporte e-mails de backups do Gmail Takeout (50 GB+) sem carregá-los na memória.

License: MIT Rust

Ler em espanhol / Spanish


Por que este projeto existe

Quando você exporta seu e-mail do Gmail usando o Google Takeout, obtém um ou mais arquivos .mbox que podem pesar dezenas de gigabytes. Não existe uma ferramenta de terminal multiplataforma que permita abrir, pesquisar e navegar nesses arquivos com eficiência sem carregá-los inteiramente na memória.

O mboxShell foi criado para resolver esse problema: abrir um MBOX de 50 GB em segundos, navegar por centenas de milhares de mensagens com fluidez, pesquisar por remetente, data ou conteúdo e exportar o que você precisar. Tudo a partir do terminal, sem interface gráfica, sem servidor, sem dependências externas.

Casos de uso

  • Navegar em backups do Gmail (Google Takeout) com os rótulos originais
  • Analisar arquivos de e-mail em servidores, durante migrações ou auditorias
  • Pesquisar mensagens em arquivos MBOX de qualquer origem (Thunderbird, servidores Unix, etc.)
  • Exportar mensagens para EML, CSV ou texto simples para processamento posterior
  • Extrair anexos individualmente ou em massa
  • Mesclar vários arquivos MBOX em um só, removendo duplicatas

Também no Mac: mboxViewer

Se você preferir uma experiência gráfica nativa no macOS, conheça o mboxViewer — um aplicativo Mac nativo criado pela mesma equipe. Ele oferece uma interface familiar no estilo de caixa de correio para abrir, navegar e pesquisar arquivos MBOX sem nunca importá-los para um cliente de e-mail. Arraste e solte seu arquivo .mbox e você terá acesso imediato a todas as suas mensagens, anexos e rótulos em uma janela limpa e nativa do macOS. Ideal para usuários que desejam a potência do mecanismo de análise do mboxShell com o conforto de uma interface gráfica desktop.

Também no seu navegador: Online Mbox Viewer

Precisa dar uma olhada em um arquivo MBOX sem instalar nada? Experimente o Online Mbox Viewer — um aplicativo web gratuito, licenciado sob MIT, do mesmo autor. Ele abre e renderiza arquivos .mbox inteiramente no seu navegador: nada é enviado para nenhum servidor, então seu e-mail permanece na sua máquina. Perfeito para uma consulta rápida de qualquer dispositivo. Código-fonte em github.com/dcarrero/online-mbox-viewer.

Recursos

  • Nunca carrega o arquivo na memória. Usa I/O de streaming com buffer de 1 MB. Um MBOX de 100 GB usa aproximadamente os mesmos ~500 MB de RAM que um de 1 GB (apenas o índice de metadados fica na memória).
  • Indexação persistente. A primeira abertura cria um índice binário (.mboxshell.idx) para que as aberturas subsequentes levem menos de um segundo.
  • Suporte completo ao Gmail. Detecta e exibe X-Gmail-Labels como pastas virtuais em um painel lateral, permitindo filtrar por Caixa de entrada, Enviados, Com estrela, rótulos personalizados, etc.
  • Codificações corretas. Decodifica palavras codificadas RFC 2047, suporta UTF-8, ISO-8859-1, Windows-1252, KOI8-R e qualquer charset reconhecido pelo encoding_rs.
  • Agrupamento por conversas. Agrupa mensagens em threads usando o algoritmo JWZ (o mesmo usado pela Netscape/Mozilla).
  • Pesquisa avançada. Filtragem por campos específicos (from:, subject:, date:, body:, has:attachment, label:, etc.), intervalos de datas, filtros de tamanho, operadores E/OU e negação.
  • Exportação flexível. Exportação individual ou em massa para EML, CSV (compatível com Excel), texto simples. Extração de anexos decodificados.
  • Binário único. Sem runtime, sem dependências. Um executável de ~5 MB que roda em Linux, macOS e Windows.
  • Interface de terminal completa. Navegação por teclado (estilo vi), três modos de layout, barra de pesquisa interativa, atalhos configuráveis.
  • Bilíngue. Interface disponível em inglês e espanhol, detectada automaticamente a partir do idioma do sistema.

Instalação

Binários pré-compilados (recomendado)

Baixe a versão mais recente para sua plataforma na página de Releases:

PlataformaBinário
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

Após o download, torne-o executável e mova-o para o seu 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

No Windows, mova mboxshell-windows-x86_64.exe para uma pasta no seu PATH ou execute-o diretamente.

Compilar a partir do código-fonte

Pré-requisitos: Rust 1.85 ou posterior.

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

Compilação cruzada para outras plataformas

# 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

Instalar via Cargo

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

Início rápido

# 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

Comandos da CLI

ComandoDescrição
mboxshell [FILE]Abrir um arquivo na TUI (ação padrão)
mboxshell open <path>Abrir um arquivo MBOX na TUI
mboxshell index <path> [-f/--force]Construir ou reconstruir o índice binário
mboxshell stats <path> [--json]Mostrar estatísticas sobre um arquivo MBOX
mboxshell search <path> <query> [--json]Pesquisar mensagens pela linha de comando
mboxshell export <path> -f <format> -o <output> [--query <q>]Exportar mensagens (formatos: eml, csv, txt, html)
mboxshell merge <files...> -o <output> [--no-dedup] [--source-header]Mesclar vários arquivos MBOX em um só
mboxshell attachments <path> -o <output>Extrair todos os anexos
mboxshell completions <shell>Gerar completions de shell (bash, zsh, fish, powershell, elvish)
mboxshell manpageGerar uma página de manual

Flags globais:

FlagDescrição
-f, --forceForçar a reconstrução do índice mesmo que um já exista
-v, --verboseAumentar a verbosidade do log (-v info, -vv debug, -vvv trace)
--lang <en|es>Forçar o idioma da interface (detectado automaticamente por padrão)

Flags de mesclagem:

FlagDescrição
--no-dedupPular a detecção de Message-ID duplicado e concatenar as entradas byte a byte (deduplicação ativada por padrão)
--source-headerInjetar um cabeçalho X-Mbox-Source: <nome da caixa postal> em cada mensagem, para que um arquivo mesclado permaneça rastreável até a caixa postal de origem de cada e-mail

O rótulo de origem é o nome da caixa postal que você vê: para uma exportação do Apple Mail — um diretório Inbox.mbox contendo um arquivo literalmente chamado mbox — ele lê Inbox.mbox, não mbox. Caixas postais que terminariam compartilhando um rótulo são diferenciadas entre si (Work/Inbox.mbox vs Personal/Inbox.mbox).

Interface do terminal

Captura de tela do mboxShell

Atalhos de teclado

TeclaAção
j / kPróxima / mensagem anterior
g / GPrimeira / última mensagem
PgDn / PgUpPágina seguinte / anterior
EnterAbrir mensagem / alternar para a visualização de mensagem
Shift-↑ / Shift-↓Rolar o corpo da mensagem selecionada (mantém o foco na lista); um indicador de posição (Top / NN% / Bot) aparece na borda da mensagem
Tab / Shift-TabAlternar o foco do painel
EscVoltar para a lista / fechar popup
/Abrir barra de pesquisa
fAbrir popup de filtro de pesquisa
n / NPróximo / resultado anterior da pesquisa
SpaceMarcar / desmarcar mensagem
*Marcar / desmarcar todas
sAlternar coluna de ordenação (Data, De, Assunto, Tamanho)
SAlternar a direção da ordenação
eExportar mensagem (EML, TXT, CSV, Anexos)
aMostrar anexos (j/k para navegar, Enter para salvar, A para salvar todos)
tAlternar visualização em threads (conversas)
lMostrar / focar / ocultar a barra lateral de rótulos
hAlternar cabeçalhos completos
rAlternar fonte bruta da mensagem
1 / 2 / 3Layout: somente lista / divisão horizontal / divisão vertical
?Ajuda
qSair

Sintaxe de pesquisa

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

Formatos de entrada suportados

FormatoExtensãoDescrição
MBOX (mboxrd/mboxo).mboxFormato padrão. Google Takeout, Thunderbird, servidores Unix

Desempenho

Testado com arquivos MBOX reais do Google Takeout:

Tamanho do arquivoMensagensIndexaçãoReabertura
500 MB~5.000~3 s< 1 s
5 GB~50.000~30 s< 1 s
50 GB~500.000~5 min< 1 s

A navegação na lista de mensagens é instantânea graças à rolagem virtual (apenas as linhas visíveis são renderizadas).

Configuração

O arquivo de configuração está localizado em ~/.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 = ","

Arquitetura

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

Principais dependências

CrateFinalidade
ratatui + crosstermInterface de terminal
mail-parserAnálise MIME/RFC 5322
encoding_rsDecodificação de charsets
chronoDatas e fusos horários
clapAnálise de argumentos de CLI
serde + bincodeSerialização do índice
sha2Verificação de integridade do índice
lruCache de mensagens decodificadas
tracingRegistro estruturado

Patrocinadores

O mboxshell é desenvolvido de forma aberta e é apoiado por:

Colorvivo      Stackscale

  • Colorvivo — especialistas em WordPress, IA e mídia digital.
  • Stackscale — especialistas em infraestrutura de nuvem privada.

Se a sua empresa considera o mboxshell útil e quiser apoiar seu desenvolvimento contínuo, veja .github/FUNDING.yml ou entre em contato pelo carrero.es.

Documentação

O manual do usuário completo cobre todos os comandos, atalhos de teclado, operadores de pesquisa, opções de exportação e chaves de configuração:

Histórico de versões

Consulte CHANGELOG.md para ver o histórico completo de versões.

Licença

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

Código-fonte: https://github.com/dcarrero/mboxshell

Categorias