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 Google Takeout (50 GB+) sem carregá-los na memória.

License: MIT Rust

Leer en Espanol / Spanish


Por que este projeto existe

Quando você exporta seu e-mail do Gmail usando o Google Takeout, você recebe um ou mais arquivos .mbox que podem pesar dezenas de gigabytes — além de uma caixa de correio adicional para cada Grupo do Google que você possui, que é fácil de esquecer e pode ser maior que a própria exportação do Gmail. Não existe uma ferramenta de terminal multiplataforma que permita abrir, pesquisar e navegar nesses arquivos de forma eficiente sem carregá-los inteiramente na memória.

O mboxShell foi criado para resolver esse problema: abra um MBOX de 50 GB em segundos, navegue por centenas de milhares de mensagens sem problemas, pesquise por remetente, data ou conteúdo, e exporte o que você precisar. Tudo a partir do terminal, sem GUI, sem servidor, sem dependências externas.

Casos de uso

  • Navegue em backups do Gmail (Google Takeout) com seus rótulos originais
  • Leia os grupos que você possui, exportados pelo Takeout como caixas de correio próprias — geralmente os maiores arquivos do arquivo
  • Analise arquivos de e-mail em servidores, durante migrações ou auditorias
  • Pesquise mensagens em arquivos MBOX de qualquer fonte (Thunderbird, servidores Unix, etc.)
  • Exporte mensagens para EML, CSV ou texto simples para processamento posterior
  • Extraia anexos individualmente ou em lote
  • Mescle vários arquivos MBOX em um só, removendo duplicatas

Também no Mac: mboxViewer

Se você prefere uma experiência gráfica nativa no macOS, confira 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 instantâneo a todas as suas mensagens, anexos e rótulos em uma janela limpa e nativa do macOS. Ideal para usuários que desejam o poder do mecanismo de análise do mboxShell com o conforto de uma GUI 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 olhada 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 um 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 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.
  • Caixas de correio do Google Groups. Lê os arquivos topics.mbox que um arquivo do Takeout inclui para cada grupo que você possui, nomeando-os pelo grupo em vez do nome de arquivo sem sentido, exibe o grupo como um rótulo virtual e agrupa conversas pelo ID exato X-GM-THRID.
  • 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 de conversas. Agrupa mensagens em tópicos usando o algoritmo JWZ (o mesmo usado pelo Netscape/Mozilla), ou o ID de conversa da própria caixa de correio quando ela possui um.
  • Pesquisa avançada. Filtragem por campo específico (from:, subject:, date:, body:, has:attachment, label:, etc.), intervalos de datas, filtros de tamanho, operadores AND/OR e negação.
  • Exportação flexível. Exportação individual ou em lote 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 pelo locale 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

# Ou coloque-o em um diretório local do usuário
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

Requisitos: Rust 1.85 ou posterior.

# Clonar e compilar
git clone https://github.com/dcarrero/mboxshell.git
cd mboxshell
cargo build --release

# O binário está em target/release/mboxshell
# Instale-o em todo o sistema:
sudo cp target/release/mboxshell /usr/local/bin/

# Ou apenas para o usuário atual:
cp target/release/mboxshell ~/.local/bin/

Compilação cruzada para outras plataformas

# Adicione o alvo que você precisa
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

# Compile para um alvo específico
cargo build --release --target aarch64-apple-darwin

Instalar via Cargo

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

Início rápido

# Abra um arquivo MBOX na interface de terminal
mboxshell mail.mbox

# Indexe e mostre estatísticas
mboxshell index mail.mbox
mboxshell stats mail.mbox

# Pesquise a partir da linha de comando
mboxshell search mail.mbox "from:[email protected] date:2024"
mboxshell search mail.mbox "has:attachment subject:invoice" --json

# Exporte mensagens
mboxshell export mail.mbox --format eml --output ./emails/
mboxshell export mail.mbox --format csv --output summary.csv

# Entregue apenas parte de um arquivo: uma nova caixa de correio apenas com as correspondências
mboxshell export mail.mbox --format mbox --query "from:[email protected]" -o handover.mbox

# Extraia anexos
mboxshell attachments mail.mbox --output ./attachments/

# Mescle vários arquivos MBOX (duplicatas são removidas por padrão)
mboxshell merge file1.mbox file2.mbox -o merged.mbox

# Mescle marcando cada mensagem com a caixa de correio de origem
mboxshell merge Inbox.mbox Sent.mbox -o merged.mbox --source-header

# Gere complementos de shell
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]Abra um arquivo na TUI (ação padrão)
mboxshell open <path>Abra um arquivo MBOX na TUI
mboxshell index <path> [-f/--force]Construa ou reconstrua o índice binário
mboxshell stats <path> [--json]Mostre estatísticas sobre um arquivo MBOX
mboxshell search <path> <query> [--json]Pesquise mensagens a partir da linha de comando
mboxshell export <path> -f <format> -o <output> [--query <q>]Exporte mensagens (formatos: eml, csv, txt, html, mbox)
mboxshell merge <files...> -o <output> [--no-dedup] [--source-header]Mescle vários arquivos MBOX em um só
mboxshell attachments <path> -o <output>Extraia todos os anexos
mboxshell completions <shell>Gere complementos de shell (bash, zsh, fish, powershell, elvish)
mboxshell manpageGere uma página de manual

Flags globais:

FlagDescrição
-f, --forceForce a reconstrução do índice mesmo que um exista (em export, -f é --format — escreva --force por extenso ali)
-v, --verboseAumente a verbosidade do log (-v info, -vv debug, -vvv trace)
--lang <en|es>Force o idioma da interface (detectado automaticamente por padrão)

Flags de mesclagem:

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

O rótulo de origem é o nome da caixa de correio 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 de correio que terminariam compartilhando um rótulo são diferenciadas entre si (Work/Inbox.mbox vs Personal/Inbox.mbox).

Interface de terminal

Captura de tela do mboxShell

Atalhos de teclado

TeclaAção
j / kPróxima / mensagem anterior
g / GPrimeira / última mensagem
PgDn / PgUpPágina para baixo / para cima
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 de pesquisa anterior
SpaceMarcar / desmarcar mensagem
*Marcar / desmarcar todas
sAlternar coluna de ordenação (Data, De, Assunto, Tamanho)
SAlternar 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 tópicos (conversas)
lMostrar / focar / ocultar barra lateral de rótulos
hAlternar cabeçalhos completos
rAlternar fonte bruta da mensagem
1 / 2 / 3Layout: apenas lista / divisão horizontal / divisão vertical
?Ajuda
qSair

Sintaxe de pesquisa

from:[email protected]              Pesquisar por remetente
to:[email protected]         Pesquisar por destinatário
cc:[email protected]              Pesquisar por destinatário em Cc
subject:invoice                  Pesquisar na linha de assunto
body:important text              Pesquisar no corpo da mensagem (texto completo)
filename:report.pdf              Pesquisar por nome de arquivo de anexo
id:<message-id@domain>           Pesquisar por Message-ID
has:attachment                   Apenas mensagens com anexos
has:no-attachment                Apenas mensagens sem anexos
label:Inbox                      Filtrar por rótulo do Gmail
date:2024-01                     Mensagens de janeiro de 2024
date:2024-01-01..2024-06-30      Intervalo de datas
before:2024-06-01                Antes de uma data (esse dia excluído)
after:2024-01-01                 A partir de uma data (esse dia incluído)
after:2024-01-01 before:2025-01-01   Todo o ano de 2024
size:>1mb                        Mensagens maiores que 1 MB
size:>1mb size:<5mb              Entre 1 e 5 MB
-subject:spam                    Excluir mensagens com "spam" no assunto
"exact phrase"                   Pesquisar por uma frase exata
from:john subject:budget         AND implícito (ambos devem corresponder)
term1 OR term2                   OR explícito
from:a OR from:b subject:budget  OR liga mais forte: (a OR b) AND subject

Formatos de entrada suportados

FormatoExtensãoDescrição
MBOX (mboxrd/mboxo).mboxFormato padrão. Google Takeout, Thunderbird, servidores Unix
Exportação do Google Groupstopics.mboxDentro de um arquivo do Takeout, em <group>@googlegroups.com/. O nome do arquivo é localizado (temas.mbox, …), então a caixa de correio é nomeada pelo grupo — veja docs/GOOGLE-GROUPS.md
Pacote do Apple MailName.mbox/mboxO arquivo interno é o que é lido; a caixa de correio é nomeada pelo pacote

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 com clap
+-- lib.rs               # Reexportações de módulos
+-- error.rs             # Tipos de erro com thiserror
+-- config.rs            # Configuração TOML
+-- mailbox_naming.rs    # Nomes de caixas de correio legíveis (pacotes do Apple Mail)
+-- i18n/                # Internacionalização (EN/ES)
+-- parser/
|   +-- mbox.rs          # Analisador de streaming (nunca carrega o arquivo na memória)
|   +-- eml.rs           # Analisador de arquivos EML individuais
|   +-- mime.rs          # Decodificação MIME, multipart, charsets
|   +-- header.rs        # Cabeçalhos RFC 5322, palavras codificadas RFC 2047
+-- index/
|   +-- builder.rs       # Construção do índice binário
|   +-- reader.rs        # Consultas ao índice
|   +-- format.rs        # Formato binário com verificação de integridade SHA-256
+-- model/
|   +-- mail.rs          # MailEntry, MailBody
|   +-- attachment.rs    # Metadados de anexos
|   +-- address.rs       # Análise de endereços RFC 5322
+-- store/
|   +-- reader.rs        # Leitura baseada em deslocamento com cache LRU
+-- search/
|   +-- query.rs         # Analisador de consultas de pesquisa
|   +-- metadata.rs      # Pesquisa rápida no índice (O(n), < 200ms para 1M de mensagens)
|   +-- fulltext.rs      # Pesquisa de texto completo em streaming
+-- export/
|   +-- eml.rs           # Exportação para .eml
|   +-- csv.rs           # Exportação de resumo para CSV (BOM UTF-8)
|   +-- text.rs          # Exportação para texto simples
|   +-- attachment.rs    # Extração de anexos
|   +-- mbox.rs          # Mesclagem MBOX com deduplicação e cabeçalho de origem
+-- tui/
    +-- app.rs           # Estado global (Arquitetura Elm)
    +-- event.rs         # Tratamento de eventos de teclado
    +-- ui.rs            # Layout e despacho de renderização
    +-- threading.rs     # Algoritmo JWZ para tópicos de conversa
    +-- theme.rs         # Tema de cores
    +-- widgets/         # Componentes visuais
        +-- mail_list.rs       # Lista com rolagem virtual
        +-- mail_view.rs       # Visualizador de mensagens com rolagem
        +-- sidebar.rs         # Painel de rótulos/pastas
        +-- header_bar.rs      # Barra superior
        +-- status_bar.rs      # Barra de status
        +-- search_bar.rs      # Barra de pesquisa
        +-- search_popup.rs    # Popup de filtro de pesquisa
        +-- help_popup.rs      # Popup de ajuda
        +-- attachment_popup.rs # Popup de anexos
        +-- export_popup.rs     # Popup de exportação

Dependências principais

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 da CLI
serde + bincodeSerialização do índice
sha2Verificação de integridade do índice
lruCache de mensagens decodificadas
tracingRegistro estruturado

Patrocinadores

O mboxshell é desenvolvido em código aberto e é apoiado por:

Colorvivo      Stackscale

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

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

Documentação

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

Registro de alterações

Veja CHANGELOG.md para 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