Hoe je gigabytes aan berichtgeschiedenissen uit de cloud haalt en een lokale zoekmachine bouwt met DuckDB en SQLite
Denk eens na hoe vaak je hebt geprobeerd een oude e-mail met een bijlage te vinden, een bugdiscussie in Slack van twee jaar geleden, of een belangrijk idee uit een Discord-DM. Meestal eindigt het allemaal met het openen van tien verschillende browsertabs, het doorzoeken van logge bedrijfsmessenger-zoekfuncties, en frustratie dat Slack's gratis archief je berichtgeschiedenis weer heeft afgekapt.
Ik heb onlangs msgvault ontdekt. Het is een Go-command-line applicatie die al je gesprekken van een dozijn bronnen naar je lokale schijf haalt, ze verpakt in SQLite en Parquet, en daar bovenop een handige webinterface, een terminal-TUI en een MCP-server voor neurale netwerken biedt.
Waarom berichtgeschiedenissen naar je eigen schijf halen
Het idee om data uit services van derden te halen is niet nieuw. Echter, meestal worden back-ups grote mappen met JSON-dumps of .eml die stof verzamelen op je harde schijf. Zoeken erin zonder een speciale database is een apart avontuur.
msgvault vervangt de traditionele archiefdownloadbenadering. Het hulpprogramma downloadt e-mails, chats, agenda's en vergaderverslagen, en部署t daaroverheen een complete zoek- en analyselaag. De data blijft bij jou. Geen betaalde abonnementen voor het bewaren van oude threads of services van derden.
Hier is wat het hulpprogramma in een uniforme database kan verzamelen:
- Gmail-postvakken (via OAuth of Service Account) en elke standaard IMAP-server.
- Google Agenda (evenementen, deelnemers en organisatoren worden samen met e-mails geïndexeerd).
- Microsoft Teams en Slack zakelijke chats, inclusief reacties, bestanden en geneste threads.
- Discord-servers via een ingebouwde bot-agent.
- Messengers van Beeper Desktop (geeft toegang tot iMessage, WhatsApp, Telegram, Signal en SMS).
- Vergaderopnames en transcripten van Granola en Circleback.
- Lokale MBOX-dumps, Apple Mail-archieven (
.emlx), PST-bestanden en SMS-backups van Android.
Hoe archivering onder de motorkap werkt
De projectarchitectuur is ontworpen met grote datavolumes in gedachten. Als je in tien jaar tijd een half miljoen e-mails met afbeeldingen en documenten hebt verzameld, zal een gewone harde schijf beginnen te vertragen alleen al door het aantal bestanden in één map.
De auteurs hebben dit opgelost met een combinatie van SQLite, DuckDB en contentmatching op basis van hashes.
Kern-tekstzoekfunctie draait via FTS5 in SQLite. Complexe analyses en filtering over een enorm berichtenarchief draaien op DuckDB bovenop de columnaire Parquet-indeling. Dit zorgt ervoor dat zware aggregatiequery's in de TUI in milliseconden worden uitgevoerd.
Bijlagen worden niet verspreid opgeslagen. msgvault dedupliceert ze op SHA-256 en verpakt ze in geïsoleerde binaire pakketten. Deze aanpak bespaart inodes op Linux en vertraagt het bestandssysteem niet op Windows of NAS. Als dat nodig is, kunnen deze pakketten altijd weer worden uitgepakt met onderhoudscommando's.
Webinterface, terminal en vectorzoekfunctie
Na het ophalen van de data kun je op drie manieren ermee werken.
Eerste optie: de ingebouwde webinterface. De daemon start een HTTP-server op met een applicatie die geen externe runtimes zoals Node.js nodig heeft. De interface is geoptimaliseerd voor snelle toetsenbordnavigatie. Het is handig voor het groeperen van e-mails op domein, het bijhouden van contacten en het bekijken van bestanden.
Tweede weg: TUI recht in de console. Het toont gedetailleerde analyses over je volledige berichtgeschiedenis. Je kunt gesprekken van een specifiek jaar van een bepaalde ontvanger in slechts een paar toetsaanslagen filteren.
De derde optie is voor degenen die berichten niet alleen op exacte woorden maar op betekenis willen doorzoeken. msgvault kan verbinden met een lokale embeddingsserver zoals Ollama, LM Studio of llama.cpp.
Na het genereren van vectoren komt hybride zoekfunctie in actie. Het combineert klassieke BM25 volledige tekstzoekfunctie en vectorzoekfunctie via Reciprocal Rank Fusion. Je voert een query in zoals "waar bespraken we het wijzigen van database-architectuur," en het hulpprogramma vindt de relevante fragmenten, zelfs als het woord "architectuur" niet in de tekst voorkwam.
Neurale netwerken verbinden via MCP
Voor degenen die Claude Desktop of console-AI-agents gebruiken, bevat msgvault een ingebouwde MCP-server (Model Context Protocol).
In plaats van handmatig lange e-mailthreads naar een chatvenster met een neurale netwerk te kopiëren, geef je de agent toegang tot het msgvault-hulpprogramma. Daarna kan Claude zoeken naar context in je eerdere gesprekken, oude overeenkomsten ophalen en gegevens uit je agenda en Slack kruisverwijzen. Alle zoekquery's worden lokaal op je machine uitgevoerd.
Snel starten
Het hulpprogramma wordt geleverd als een kant-en-klaar binair bestand. Op macOS en Linux kost installatie één commando:
curl -fsSL https://msgvault.io/install.sh | bash
Homebrew-gebruikers kunnen het pakket direct installeren:
brew install msgvault
Om te beginnen, initialiseer je de database en koppel je een test Gmail-account:
msgvault init-db
msgvault add-account [email protected]
msgvault sync-full [email protected] --limit 100
msgvault serve
Het add-account commando opent een browser voor OAuth-autorisatie. Na het downloaden van honderd berichten start msgvault serve een lokale webserver met zoekfunctie.
Als je een achtergrondproces moet draaien voor continue geplande synchronisatie, kan het hulpprogramma in daemon-modus werken:
msgvault daemon start
msgvault daemon status
Dingen om in gedachten te houden
Het project is in actieve ontwikkeling (alfaversie). De ontwikkelaars waarschuwen dat opslagindelingen en CLI-flags kunnen veranderen tussen releases, dus het is het beste om regelmatig een back-up van de database zelf te maken.
De tweede nuance betreft de initiële setup. Om Gmail of Google Agenda te verbinden, moet je ongeveer vijf minuten besteden aan het maken van je eigen OAuth-client in Google Cloud Console. Het projectdossier bevat echter een gedetailleerde stapsgewijze handleiding.
Voor wie is dit project nuttig
msgvault is nuttig voor ontwikkelaars, privacyliefhebbers en iedereen wiens werkleven verspreid is over tientallen cloudservices. Het hulpprogramma lost het afhankelijkheidsprobleem van andere platforms op en verandert verspreide berichtenarchieven in een uniforme, snelle, lokale kennisbank.
Gerelateerde projecten