>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
Go

Cómo extraer gigabytes de historiales de mensajes de la nube y construir un motor de búsqueda local con DuckDB y SQLite

Piensa en cuántas veces has intentado encontrar un correo antiguo con un adjunto, una discusión sobre un bug en Slack de hace dos años, o una idea importante de un DM de Discord. Por lo general, todo termina abriendo diez pestañas diferentes del navegador, buceando entre las engorrosas búsquedas de mensajeros corporativos, y la frustración de que el archivo gratuito de Slack haya vuelto a cortar tu historial de mensajes.

Hace poco descubrí msgvault. Es una aplicación de línea de comandos en Go que extrae todas tus conversaciones de una docena de fuentes a tu disco local, las empaqueta en SQLite y Parquet, y además proporciona una práctica interfaz web, una TUI para terminal y un servidor MCP para redes neuronales.

msgvault logo

Por qué extraer historiales de mensajes a tu propio disco

La idea de extraer datos de servicios de terceros no es nueva. Sin embargo, más frecuentemente de lo que gustaría, las copias de seguridad se convierten en carpetas enormes con volcados JSON o .eml que se acumulan polvo en tu disco duro. Buscar en ellas sin una base de datos dedicada es una odisea aparte.

msgvault reemplaza el enfoque tradicional de descarga de archivos. La utilidad descarga correos, chats, calendarios y transcripciones de reuniones, y luego despliega una capa completa de análisis y búsqueda sobre ellos. Los datos se quedan contigo. Sin suscripciones de pago para mantener hilos antiguos ni procesadores externos en la nube.

Esto es lo que la utilidad puede consolidar en una base de datos unificada:

  • Buzones de Gmail (vía OAuth o Cuenta de Servicio) y cualquier servidor IMAP estándar.
  • Google Calendar (los eventos, participantes y organizadores se indexan junto con los correos).
  • Chats corporativos de Microsoft Teams y Slack, incluyendo reacciones, archivos y hilos anidados.
  • Servidores de Discord a través de un agente bot integrado.
  • Mensajería de Beeper Desktop (da acceso a iMessage, WhatsApp, Telegram, Signal y SMS).
  • Grabaciones de reuniones y transcripciones de Granola y Circleback.
  • Volcados MBOX locales, archivos de Apple Mail (.emlx), archivos PST y copias de seguridad de SMS de Android.

Cómo funciona la archivación bajo el capó

La arquitectura del proyecto se diseñó pensando en grandes volúmenes de datos. Si has acumulado medio millón de correos con imágenes y documentos durante diez años, un disco duro normal empezará a ralentizarse solo por el número de archivos en un solo directorio.

Los autores resolvieron esto con una combinación de SQLite, DuckDB y coincidencia de contenido por hashes.

La búsqueda de texto principal funciona a través de FTS5 en SQLite. El análisis complejo y el filtrado en un archivo masivo de mensajes se ejecutan en DuckDB sobre el formato columnar Parquet. Esto permite que consultas pesadas de agregación en la TUI se ejecuten en milisegundos.

Los archivos adjuntos no se almacenan dispersos. msgvault los deduplica por SHA-256 y los empaqueta en bloques binarios aislados. Este enfoque ahorra inodos en Linux y no ralentiza el sistema de archivos en Windows o NAS. Si es necesario, estos bloques siempre se pueden volver a desempaquetar con comandos de mantenimiento.

Interfaz web, terminal y búsqueda vectorial

Después de importar los datos, puedes trabajar con ellos de tres formas.

Primera opción: la interfaz web integrada. El demonio levanta un servidor HTTP con una aplicación que no necesita runtimes externos como Node.js. La interfaz está optimizada para navegación rápida por teclado. Es conveniente para agrupar correos por dominio, rastrear contactos y ver archivos.

Segundo camino: TUI directamente en la consola. Muestra análisis detallados de todo tu historial de mensajes. Puedes filtrar conversaciones de un año específico por un destinatario particular en solo un par de pulsaciones de tecla.

La tercera opción es para quienes quieren buscar mensajes no solo por palabras exactas sino por significado. msgvault puede conectarse a un servidor de embeddings local como Ollama, LM Studio o llama.cpp.

Después de generar los vectores, entra en juego la búsqueda híbrida. Combina la búsqueda de texto completo clásica BM25 y la búsqueda vectorial mediante Reciprocal Rank Fusion. Escribes una consulta como "dónde hablamos de cambiar la arquitectura de la base de datos", y la utilidad encuentra los fragmentos relevantes aunque la palabra "arquitectura" no apareciera en el texto.

Conectar redes neuronales a través de MCP

Para quienes usan Claude Desktop o agentes de IA en consola, msgvault incluye un servidor MCP integrado (Model Context Protocol).

En lugar de copiar manualmente hilos largos de correos en una ventana de chat con una red neuronal, le das al agente acceso a la herramienta msgvault. Después, Claude puede buscar contexto en tus conversaciones pasadas, recuperar acuerdos antiguos y cruzar datos de tu calendario y Slack. Todas las consultas de búsqueda se ejecutan localmente en tu máquina.

Inicio rápido

La utilidad se distribuye como un binario listo para usar. En macOS y Linux, la instalación toma un comando:

curl -fsSL https://msgvault.io/install.sh | bash

Los usuarios de Homebrew pueden instalar el paquete directamente:

brew install msgvault

Para comenzar, inicializa la base de datos y vincula una cuenta de Gmail de prueba:

msgvault init-db
msgvault add-account [email protected]
msgvault sync-full [email protected] --limit 100
msgvault serve

El comando add-account abre un navegador para la autorización OAuth. Después de descargar cien mensajes, msgvault serve inicia un servidor web local con búsqueda.

Si necesitas ejecutar un proceso en segundo plano para sincronización programada continua, la utilidad puede funcionar en modo demonio:

msgvault daemon start
msgvault daemon status

Cosas a tener en cuenta

El proyecto está en desarrollo activo (versión alfa). Los desarrolladores avisan de que los formatos de almacenamiento y los flags de CLI pueden cambiar entre versiones, así que lo mejor es hacer copias de seguridad de la propia base de datos regularmente.

La segunda nuance se refiere a la configuración inicial. Para conectar Gmail o Google Calendar, necesitarás dedicar unos cinco minutos creando tu propio cliente OAuth en Google Cloud Console. Sin embargo, la documentación del proyecto tiene una guía detallada paso a paso.

A quién le resultará útil este proyecto

msgvault es útil para desarrolladores, entusiastas de la privacidad y cualquier persona cuyo trabajo esté distribuido entre docenas de servicios en la nube. La herramienta resuelve el problema de la dependencia de otras plataformas y convierte archivos de mensajes dispersos en una base de conocimiento unificada, rápida y local.

Proyectos relacionados