Как подружить Bitwarden и KeePass в одном приложении
У каждого разработчика свой подход к хранению паролей. Кто-то доверяет облачному Bitwarden, кто-то по старинке держит .kdbx файл от KeePass и синхронизирует его через флешки или домашний NAS. Проблема начинается, когда нужно объединить эти два мира, особенно на Android. Постоянно переключаться между приложениями — сомнительное удовольствие.
Недавно наткнулся на проект Monica. Это опенсорсный менеджер паролей, который пытается усидеть на двух стульях: он работает как локальное хранилище и при этом умеет подтягивать данные из Bitwarden и KeePass.
Зачем это нужно, когда есть официальные клиенты
Основная идея Monica — «Local First». Автор явно вдохновлялся концепцией, где ваши данные принадлежат вам, а не облачному провайдеру. Если Bitwarden завтра решит изменить политику или станет недоступен, у вас останется локальная зашифрованная база.
Проект решает несколько прикладных задач:
- Объединение баз. Вы можете использовать Bitwarden для рабочих аккаунтов и KeePass для личных, видя всё в одном интерфейсе.
- Независимость от вендора. Данные хранятся локально в зашифрованном виде (AES-256-GCM).
- Гибкая синхронизация. Вместо проприетарных облаков можно использовать свой WebDAV.
Кстати, в репозитории есть забавный момент. Разработчик в README честно (и довольно эмоционально) пишет, что иногда ленится ревьюить код и доверяет AI, поэтому настоятельно рекомендует делать бэкапы. Такая искренность в опенсорсе подкупает, хотя и заставляет лишний раз проверить настройки экспорта.
Что умеет Monica
Проект ориентирован в первую очередь на Android, хотя есть и заготовка под браузерное расширение.
Поддержка разных форматов
Приложение «переваривает» стандартные файлы .kdbx от KeePass. Вы просто указываете путь к файлу, и Monica работает с ним как с родным. Параллельно можно подключиться к Bitwarden через API. В итоге получается агрегатор, где в общем поиске вылетают результаты из обоих источников.
Встроенный TOTP
Если вы до сих пор держите коды двухфакторки в отдельном приложении вроде Google Authenticator, то здесь их можно привязать прямо к карточкам паролей. Удобно: открыл запись, скопировал пароль, тут же подсмотрел шестизначный код.
Автозаполнение и биометрия
Monica использует стандартные Android API для автозаполнения полей в других приложениях и браузере. Чтобы не вводить мастер-пароль каждые пять минут, прикручена поддержка отпечатка пальца и Face Unlock через BiometricPrompt.
Техническая начинка
С точки зрения стека Monica — это современный Android-проект. Если вы занимаетесь мобильной разработкой, в коде будет легко сориентироваться.
- UI написан на Jetpack Compose с использованием Material 3. Выглядит чисто, без лишнего визуального шума.
- Для хранения локальных данных используется Room.
- Архитектура завязана на Koin для внедрения зависимостей и Kotlin Coroutines для асинхронщины.
- За безопасность отвечают Android Keystore и EncryptedSharedPreferences. Ключи шифрования не валяются в открытом виде в песочнице приложения.
Интересно реализована работа с WebDAV. Для этого используется библиотека sardine-android. Это позволяет настроить автоматический бэкап базы на свой сервер (например, в Nextcloud) через WorkManager.
Как попробовать
Проще всего зайти в раздел Releases на GitHub и забрать готовый APK.
Для тех, кто хочет пощупать браузерную версию (она пока в статусе экспериментальной), придется собрать её руками:
- Перейти в директорию
Monica for Browser. - Выполнить сборку через Vite (проект на React + TypeScript).
- Загрузить полученную папку
distв Chrome через режим разработчика.
Стоит учитывать, что проект сейчас активно пилится одним человеком. Например, автор честно предупреждает, что на некоторых прошивках Xiaomi (HyperOS) могут быть проблемы с созданием Passkey.
Стоит ли переходить
Monica подойдет тем, кто ищет «комбайн» для паролей и не боится использовать софт от независимых разработчиков. Это отличный вариант, если вам нужно объединить старую базу KeePass с корпоративным Bitwarden и при этом вы хотите контролировать, куда улетают ваши бэкапы.
Если же вам нужна максимальная стабильность и поддержка Passkey на всех устройствах «из коробки», возможно, стоит подождать, пока проект выйдет из стадии активного формирования архитектуры. Но как минимум закнопать репозиторий или изучить реализацию работы с .kdbx на Kotlin точно стоит.
Вывод простой: проект живой, с понятной философией и прозрачным кодом. В эпоху, когда облачные сервисы всё чаще диктуют свои условия, такие локальные инструменты становятся настоящим спасением для тех, кто ценит приватность.
