EnglishРусский Map

msgvault

title
msgvault
type
toolbox
summary
Офлайн-архив почты с полнотекстовым поиском в SQLite, аналитикой в DuckDB и MCP-сервером
tags
go, email, archival, search, duckdb, sqlite, mcp, local-first, watchlist, kenn-software
language
Go
license
MIT
created
2026-05-22
updated
2026-05-22
lang
ru
translation_of
msgvault
source_updated
2026-05-22
translated
2026-09-01
translator
lllm/antigravity/gemini-3.7-flash-medium

Инструмент для архивации почты (и чатов): скачивает полную локальную копию истории сообщений, позволяя искать по ней и строить аналитику за миллисекунды полностью офлайн. Позиционируется как способ "сохранить архив почты за всю жизнь". Входит в kenn-software-suite; самый популярный проект набора (1.8k звёзд), но имеет явный статус alpha.

Что делает

Собирает почту из нескольких источников в одну локальную базу данных - полный бэкап Gmail с ярлыками и метаданными, синхронизация по IMAP со стандартных серверов, а также импорт из MBOX и Apple Mail .emlx. Синхронизация инкрементальная (через Gmail History API, поэтому неизменённые сообщения повторно не скачиваются) и возобновляемая после прерывания. Поддерживается несколько аккаунтов в одной базе, сервисные аккаунты Google Workspace и делегирование на уровне домена (domain-wide delegation) для архивации в масштабах организации.

После архивации к данным можно обращаться офлайн: интерактивный TUI с детализированной аналитикой, синтаксис запросов FTS5 в стиле Gmail и семантический векторный поиск через локальные эмбеддинги (Ollama, llama.cpp, LM Studio). Гибридный поиск комбинирует BM25 и векторный поиск. MCP-сервер открывает доступ к архиву для Claude Desktop и других агентов.

Как устроен внутри

Go 1.25+ (~99%). Два движка хранения бок о бок: SQLite хранит сообщения (с сохранением исходного MIME, вложения адресуются по содержимому и дедуплицируются по SHA-256), а DuckDB обеспечивает агрегационные запросы за миллисекунды, используя Parquet для кэширования аналитики. В этом разделении и заключается суть архитектуры: SQLite как транзакционное хранилище сообщений и FTS, DuckDB - для OLAP-запросов вроде "сколько писем в месяц приходило от X за десять лет", на которых построчное хранилище просто бы зависло.

Опциональный режим демона добавляет HTTP API и синхронизацию по расписанию через cron. Конфигурация в TOML; MSGVAULT_HOME переопределяет расположение данных; поддерживается несколько OAuth-приложений для организаций в Workspace.

Использование

msgvault init-db
msgvault add-account you@gmail.com
msgvault sync-full you@gmail.com --limit 100
msgvault tui

msgvault search "invoice 2023" --mode vector   # or --mode hybrid

Распространение: скрипт установки для bash (macOS/Linux), PowerShell (Windows), Conda-Forge, Docker или сборка из исходников. Для сборки требуются Go 1.25+ и компилятор C/C++ для CGO и статической линковки DuckDB.

Ограничения

  • Alpha-версия. В README прямо указано: API, формат хранения и флаги CLI могут измениться без предупреждения - делайте резервные копии данных.
  • Статическая линковка DuckDB требует наличия тулчейна C/C++ при сборке (это не pure-Go, в отличие от родственного проекта middleman).

Watchlist

Версия v0.14.x с явным предупреждением об alpha-статусе и возможном изменении формата хранения. Отслеживается в watchlist для повторной проверки, когда формат стабилизируется и проект выйдет из alpha.

Связанные страницы

  • wacli - WhatsApp CLI, синхронизирующий сообщения локально для офлайн-поиска; та же идея локального владения историей сообщений, но другой источник.
  • llama.cpp - один из локальных бэкендов для эмбеддингов, поддерживаемый векторным поиском msgvault.
  • kenn-software-suite - остальная часть набора инструментов. msgvault отвечает за персональные данные, остальные ориентированы на рабочие процессы агентов.

Репозиторий

github.com/kenn-io/msgvault - Go (1.25+), MIT, 1.8k звёзд, v0.14.1 (alpha, 27 релизов). msgvault.io.