
mboxShell. Visor de terminal rápido para archivos MBOX de cualquier tamaño. Abre, busca y exporta correos electrónicos de copias de seguridad de Gmail Takeout (50 GB+) sin cargarlos en la memoria. Construido en Rust.
Visor rapido de terminal para archivos MBOX de cualquier tamano. Abre, busca y exporta correos de backups Gmail Takeout (50 GB+) sin cargarlos en memoria.
Cuando exportas tu correo de Gmail con Google Takeout, recibes uno o varios archivos .mbox que pueden pesar decenas de gigabytes. No existe una herramienta de terminal multiplataforma que permita abrir, buscar y consultar esos archivos de forma eficiente sin cargarlos enteros en memoria.
mboxShell nacio para resolver ese problema: abrir un MBOX de 50 GB en segundos, navegar entre cientos de miles de mensajes con fluidez, buscar por remitente, fecha o contenido, y exportar lo que necesites. Todo desde la terminal, sin interfaz grafica, sin servidor, sin dependencias externas.
Si prefieres una experiencia grafica nativa en macOS, echa un vistazo a mboxViewer — una app nativa para Mac creada por el mismo equipo. Ofrece una interfaz de buzon de correo familiar para abrir, explorar y buscar archivos MBOX sin necesidad de importarlos en un cliente de correo. Arrastra tu archivo .mbox y tendras acceso instantaneo a todos tus mensajes, adjuntos y etiquetas en una ventana nativa de macOS. Ideal para quienes quieren la potencia del motor de parsing de mboxShell con la comodidad de una interfaz de escritorio.
¿Solo necesitas echar un vistazo a un archivo MBOX sin instalar nada? Prueba Online Mbox Viewer — una app web gratuita y con licencia MIT del mismo autor. Abre y muestra archivos .mbox por completo en tu navegador: no se sube nada a ningun servidor, asi que tu correo nunca sale de tu equipo. Perfecto para una consulta rapida desde cualquier dispositivo. Codigo fuente en github.com/dcarrero/online-mbox-viewer.
.mboxshell.idx) que permite abrir el archivo en menos de un segundo en sucesivas ejecuciones.X-Gmail-Labels como carpetas virtuales en un panel lateral, permitiendo filtrar por Inbox, Sent, Starred, etiquetas personalizadas, etc.encoding_rs.from:, subject:, date:, body:, has:attachment, label:, etc.), rangos de fechas, tamano, operadores AND/OR y negacion.Descarga la ultima version para tu plataforma desde la pagina de Releases:
Tras descargar, dale permisos de ejecucion y muevelo a tu PATH:
# Linux / macOS
chmod +x mboxshell-*
sudo mv mboxshell-* /usr/local/bin/mboxshell
# O colocalo en un directorio local de usuario
mv mboxshell-* ~/.local/bin/mboxshell
En Windows, mueve mboxshell-windows-x86_64.exe a una carpeta en tu PATH, o ejecutalo directamente.
Requisitos: Rust 1.85 o superior.
# Clonar y compilar
git clone https://github.com/dcarrero/mboxshell.git
cd mboxshell
cargo build --release
# El binario esta en target/release/mboxshell
# Instalar a nivel de sistema:
sudo cp target/release/mboxshell /usr/local/bin/
# O solo para el usuario actual:
cp target/release/mboxshell ~/.local/bin/
# Anadir el target que necesites
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
# Compilar para un target especifico
cargo build --release --target aarch64-apple-darwin
cargo install --git https://github.com/dcarrero/mboxshell.git
# Abrir un archivo MBOX en la interfaz de terminal
mboxshell correo.mbox
# Indexar y ver estadisticas
mboxshell index correo.mbox
mboxshell stats correo.mbox
# Buscar mensajes desde la linea de comandos
mboxshell search correo.mbox "from:[email protected] date:2024"
mboxshell search correo.mbox "has:attachment subject:factura" --json
# Exportar mensajes
mboxshell export correo.mbox --format eml --output ./emails/
mboxshell export correo.mbox --format csv --output resumen.csv
# Extraer adjuntos
mboxshell attachments correo.mbox --output ./adjuntos/
# Combinar varios MBOX eliminando duplicados
mboxshell merge archivo1.mbox archivo2.mbox -o combinado.mbox --dedup
# Generar completions para tu shell
mboxshell completions bash > /etc/bash_completion.d/mboxshell
mboxshell completions zsh > ~/.zfunc/_mboxshell
mboxshell completions fish > ~/.config/fish/completions/mboxshell.fish
Flags globales:
| Flag | Descripcion |
|---|---|
-f, --force | Forzar reconstruccion del indice aunque exista |
-v, --verbose |

from:[email protected] Buscar por remitente
to:[email protected] Buscar por destinatario
cc:[email protected] Buscar por destinatario en copia (Cc)
subject:factura Buscar en el asunto
body:texto importante Buscar en el cuerpo del mensaje
filename:informe.pdf Buscar por nombre de adjunto
id:<message-id@dominio> Buscar por Message-ID
has:attachment Solo mensajes con adjuntos
has:no-attachment Solo mensajes sin adjuntos
label:Inbox Filtrar por etiqueta de Gmail
date:2024-01 Mensajes de enero 2024
date:2024-01-01..2024-06-30 Rango de fechas
before:2024-06-01 Antes de una fecha
after:2024-01-01 Despues de una fecha
size:>1mb Mensajes de mas de 1 MB
-subject:spam Excluir mensajes con "spam"
"frase exacta" Buscar frase completa
from:juan subject:presupuesto AND implicito (ambos deben coincidir)
term1 OR term2 OR explicito
| Formato | Extension | Descripcion |
|---|---|---|
| MBOX (mboxrd/mboxo) | .mbox | Formato estandar. Google Takeout, Thunderbird, servidores Unix |
Probado con archivos MBOX reales de Google Takeout:
La navegacion por la lista de mensajes es instantanea gracias al virtual scrolling (solo se renderizan las filas visibles).
El archivo de configuracion se ubica en ~/.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 con clap
+-- lib.rs # Re-exporta modulos
+-- error.rs # Tipos de error con thiserror
+-- config.rs # Configuracion TOML
+-- i18n/ # Internacionalizacion (EN/ES)
+-- parser/
| +-- mbox.rs # Parser streaming (nunca carga el archivo en memoria)
| +-- eml.rs # Parser de archivos EML individuales
| +-- mime.rs # Decodificacion MIME, multipart, charsets
| +-- header.rs # Headers RFC 5322, encoded-words RFC 2047
+-- index/
| +-- builder.rs # Construccion del indice binario
| +-- reader.rs # Consulta del indice
| +-- format.rs # Formato binario con verificacion SHA-256
+-- model/
| +-- mail.rs # MailEntry, MailBody
| +-- attachment.rs # Metadatos de adjuntos
| +-- address.rs # Parsing de direcciones RFC 5322
+-- store/
| +-- reader.rs # Lectura por offset con cache LRU
+-- search/
| +-- query.rs # Parser de queries de busqueda
| +-- metadata.rs # Busqueda rapida en indice (O(n), < 200ms para 1M msgs)
| +-- fulltext.rs # Busqueda full-text streaming
+-- export/
| +-- eml.rs # Exportar a .eml
| +-- csv.rs # Exportar resumen a CSV (UTF-8 BOM)
| +-- text.rs # Exportar a texto plano
| +-- attachment.rs # Extraccion de adjuntos
| +-- mbox.rs # Merge de MBOX con deduplicacion
+-- tui/
+-- app.rs # Estado global (Elm Architecture)
+-- event.rs # Manejo de eventos de teclado
+-- ui.rs # Layout y dispatch de renderizado
+-- threading.rs # Algoritmo JWZ para hilos de conversacion
+-- theme.rs # Tema de colores
+-- widgets/ # Componentes visuales
+-- mail_list.rs # Lista con virtual scrolling
+-- mail_view.rs # Visor de mensaje con scroll
+-- sidebar.rs # Panel de etiquetas/carpetas
+-- header_bar.rs # Barra superior
+-- status_bar.rs # Barra de estado
+-- search_bar.rs # Barra de busqueda
+-- search_popup.rs # Popup de filtros de busqueda
+-- help_popup.rs # Popup de ayuda
+-- attachment_popup.rs # Popup de adjuntos
+-- export_popup.rs # Popup de exportacion
mboxshell se desarrolla en abierto y cuenta con el apoyo de:
Si tu empresa usa mboxshell y quiere apoyar su desarrollo, consulta .github/FUNDING.yml o escribe a través de carrero.es.
El manual de usuario completo cubre todos los comandos, atajos de teclado, operadores de búsqueda, opciones de exportación y claves de configuración:
Consulta CHANGELOG-ES.md (English: CHANGELOG.md) para el historial completo de versiones.
MIT - Copyright (c) 2026 David Carrero Fernandez-Baillo - https://carrero.es
Codigo fuente: https://github.com/dcarrero/mboxshell
| Plataforma | Binario |
|---|
| Linux x86_64 | mboxshell-linux-x86_64 |
| Linux ARM64 | mboxshell-linux-aarch64 |
| Linux RISC-V 64 | mboxshell-linux-riscv64 |
| FreeBSD x86_64 | mboxshell-freebsd-x86_64 |
| macOS Intel | mboxshell-macos-x86_64 |
| macOS Apple Silicon | mboxshell-macos-aarch64 |
| Windows x86_64 | mboxshell-windows-x86_64.exe |
| Windows ARM64 | mboxshell-windows-arm64.exe |
| Comando | Descripcion |
|---|
mboxshell [ARCHIVO] | Abrir en la interfaz de terminal (accion por defecto) |
mboxshell open <ruta> | Abrir un fichero MBOX en la TUI |
mboxshell index <ruta> [-f/--force] | Construir o reconstruir el indice binario |
mboxshell stats <ruta> [--json] | Mostrar estadisticas de un archivo MBOX |
mboxshell search <ruta> <consulta> [--json] | Buscar mensajes desde la linea de comandos |
mboxshell export <ruta> -f <formato> -o <salida> [--query <q>] | Exportar mensajes (formatos: eml, csv, txt, html) |
mboxshell merge <archivos...> -o <salida> [--dedup] | Combinar varios archivos MBOX en uno |
mboxshell attachments <ruta> -o <salida> | Extraer todos los adjuntos |
mboxshell completions <shell> | Generar completions de shell (bash, zsh, fish, powershell, elvish) |
mboxshell manpage | Generar pagina de manual |
| Aumentar verbosidad del log (-v info, -vv debug, -vvv trace) |
--lang <en|es> | Forzar idioma de la interfaz (auto-detectado por defecto) |
| Tecla | Accion |
|---|
j / k | Mensaje siguiente / anterior |
g / G | Primer / ultimo mensaje |
PgDn / PgUp | Pagina abajo / arriba |
Enter | Abrir mensaje / cambiar a vista de mensaje |
Shift-↑ / Shift-↓ | Scroll del cuerpo del mensaje (mantiene foco en lista); un indicador de posición (Inicio / NN% / Fin) aparece en el borde del mensaje |
Tab / Shift-Tab | Cambiar panel |
Esc | Volver a la lista / cerrar popup |
/ | Abrir barra de busqueda |
f | Abrir popup de filtros de busqueda |
n / N | Siguiente / anterior resultado de busqueda |
Space | Marcar / desmarcar mensaje |
* | Marcar / desmarcar todos |
s | Cambiar columna de ordenacion (Fecha, De, Asunto, Tamano) |
S | Invertir direccion de ordenacion |
e | Exportar mensaje (EML, TXT, CSV, Adjuntos) |
a | Ver adjuntos (j/k para navegar, Enter para guardar, A para guardar todos) |
t | Alternar vista de conversaciones (threads) |
l | Mostrar / enfocar / ocultar panel de etiquetas |
h | Mostrar todos los headers |
r | Mostrar mensaje en formato raw |
1 / 2 / 3 | Layout: solo lista / horizontal / vertical |
? | Ayuda |
q | Salir |
| Tamano del archivo | Mensajes | Indexacion | Re-apertura |
|---|
| 500 MB | ~5.000 | ~3 s | < 1 s |
| 5 GB | ~50.000 | ~30 s | < 1 s |
| 50 GB | ~500.000 | ~5 min | < 1 s |
| Crate | Uso |
|---|
ratatui + crossterm | Interfaz de terminal |
mail-parser | Parsing MIME/RFC 5322 |
encoding_rs | Decodificacion de charsets |
chrono | Fechas y zonas horarias |
clap | Linea de comandos |
serde + bincode | Serializacion del indice |
sha2 | Integridad del indice |
lru | Cache de mensajes decodificados |
tracing | Logging estructurado |