Monica is a free, open source identity & access management (iam) project written in Kotlin and released under GPL-3.0. It has 1,028 GitHub stars, 62 forks and 7 open issues, and was last pushed 3 days ago. On this registry it ranks #37 of 42 tracked projects in Identity & Access Management (IAM), with 5 head-to-head comparisons available.

What is Monica?

Monica is a local-first password manager and 2FA generator for Android, written in Kotlin and released under GPL-3.0, that aggregates Bitwarden and KeePass vaults into a single encrypted store for people who want their credentials to stay on their own devices rather than in a third-party cloud.

What it is

Monica is an Android application built around a local encrypted vault. It keeps logins, bank cards, identity information, private notes and attachments encrypted on the device, and it adds a built-in TOTP generator so that one-time codes live beside the passwords they protect. The project defines its own local-first vault format called MDBX, which is designed around nested folders, attachments, commit history, conflict detection, tombstone deletion chains, snapshot recovery and a "Tiga" security mode, with a full format specification and a client integration guide published for anyone who wants to read that database from another client. The Android client is implemented with Jetpack Compose, Material 3 and Navigation Compose on the UI side, Room with DAOs and repositories for data, Koin for dependency injection, and Kotlin Coroutines with Flow for concurrency.

The concrete problem it solves is vault fragmentation. Many people maintain a Bitwarden account and, separately, a KeePass .kdbx file, which means two clients, two unlocking flows and two places where a credential might or might not exist. Monica aggregates both ecosystems on the Android side, carrying Bitwarden API and sync capability alongside KeePass read/write support through the kotpass library, and it folds TOTP into the same application instead of leaving a second authenticator app in the loop. Cross-device movement is deliberately optional and stays under the user's control: rather than routing data through a vendor service, Monica syncs and backs up over WebDAV infrastructure the user already operates, with an AutoBackupWorker built on WorkManager handling scheduled automatic backups.

Key capabilities

  • Local encrypted vault for logins, bank cards, identity records, private notes and attachments, held on-device rather than in a hosted service.
  • Dual-ecosystem aggregation: Bitwarden API and sync integration through Retrofit and OkHttp, plus KeePass .kdbx reading and writing through kotpass.
  • Built-in TOTP management, storing shared secrets and generating dynamic verification codes inside the same app as the passwords.
  • Optional WebDAV sync and backup over the user's own infrastructure, using sardine-android and scheduled through the AutoBackupWorker.
  • The MDBX local vault format, covering nested folders, attachments, commit history, conflict detection, tombstone deletion and snapshot recovery, documented in mdbx/docs with a CLIENT_INTEGRATION_GUIDE for third-party clients.
  • Cryptographic design based on AES-256-GCM authenticated encryption with PBKDF2-HMAC-SHA256 key derivation at high iteration counts.
  • Platform security integration through Android Keystore, EncryptedSharedPreferences and BiometricPrompt, giving biometric unlock on supported devices, alongside search by title, domain or tag.

Who uses it and how

  • Android users on Android 8.0 or later who want their credential vault to remain local and who are unwilling to hand account data to a third-party cloud.
  • People who already run both Bitwarden and KeePass and want one Android client that can migrate KeePass data and reach into Bitwarden-compatible storage instead of switching between two apps.
  • Users who own a WebDAV server and want cross-device flow and automated backups without a vendor-operated sync backend.
  • Chrome and Edge users who build the browser extension from the Monica for Browser directory, enable developer mode at chrome://extensions/, and load the resulting dist directory as an unpacked extension to get autofill alongside the phone.
  • Developers integrating with the vault format, who read the MDBX workspace notes and the client integration guide before wiring another client into the database.

Getting started

Installation on Android is a download of the latest APK from the project's GitHub Releases page, followed by installation on an Android 8.0+ device and initialisation of a master password. The browser side is currently built from source: build the plugin from the Monica for Browser directory, enable developer mode in the browser's extension page, and load the dist directory as an unpacked extension; documentation lives at the project's MonicaDocs site.

How it compares

Bitwarden and KeePass are the two tools named in the project's own material, and Monica is positioned as an aggregator of them rather than a straight replacement for either: it carries Bitwarden API and sync capability and reads and writes KeePass .kdbx files, so existing vaults can be brought along rather than rebuilt. Where a hosted Bitwarden deployment handles server-side sync for the user, Monica leaves that layer to the user, offering WebDAV against infrastructure they run themselves. Both the aggregation layer and the optional sync path are under the GPL-3.0 licence that governs the project.

When to use it — and when not to

Anyone who wants sync must operate their own WebDAV endpoint, because Monica ships no server component and no bundled hosting. Known limitations are documented plainly: Paskey creation currently fails on some Xiaomi HyperOS devices, with a community module named HyperMonica suggested as a workaround, and the surrounding platform work is uneven, with the Windows client archived, the browser extension archived and its replacement still under rewrite, and the Wear client no longer receiving continuous updates. The project is maintained primarily by a single developer whose stated focus is Android feature completion, experience and stability, so anyone needing a uniform, fully released suite across desktop, mobile and browser today should look elsewhere, as should anyone unwilling to build the browser extension from source.

project readme (upstream, from github) — read inline

Monica 本地密码库

中文 | English | 日本語 | Tiếng Việt | Русский | 黑羽川

聚合 Bitwarden 与 KeePass 的本地优先密码库

Android / Browser · Local Vault · TOTP · WebDAV Backup

友情链接: Linux.do Linux.do

Release Downloads Last Commit QQ群 Telegram

爱发电 Ko-fi PayPal Liberapay · EUR
JoyinJoester%2FMonica | Trendshift

Monica 是一个聚合 BitwardenKeePass 的本地密码库(Local Vault)。 它以本地存储优先为核心,帮助你在 Android 与浏览器端统一管理账号密码、2FA、私密笔记与敏感附件。

官网入口: https://monica-pass.github.io/MonicaDocs/

Monica for Windows 已归档。历史代码见: Monica-for-Windows

Monica for Browser 已归档。新的 Monica Extension 正在重写开发中,敬请期待。

由于目前项目主要由我一人维护,时间与精力都比较有限,因此 Monica for Wear 暂时无法保持持续更新。现阶段我会将主要重心放在 Monica for Android 的功能完善、体验优化与稳定性维护上,也感谢大家的理解与支持。


用户先看

Monica 适合谁

  • 需要本地优先密码管理,不希望账号数据托管到第三方云。
  • 既使用 Bitwarden,也维护 KeePass (.kdbx) 数据。
  • 需要 Android 日常使用,同时在浏览器里完成自动填充。

你能得到什么

  • 本地加密保险箱: 登录信息、银行卡、身份信息、私密笔记、附件。
  • 双生态聚合: Android 端包含 Bitwarden API/同步能力与 KeePass (.kdbx) 读写能力。
  • 可选同步与备份: 通过自有 WebDAV 基础设施实现跨设备数据流转。
  • 内置 TOTP: 在同一应用内完成密码与二次验证码管理。

MDBX 本地数据库格式

MDBX 是 Monica 正在推进的本地优先加密 vault 格式。它不是简单的密码表,而是围绕嵌套文件夹、附件、提交历史、冲突检测、tombstone 删除链路、快照恢复和 Tiga 安全模式设计的数据库格式。

如果你要在其他客户端接入 MDBX,请先读 MDBX workspace 说明MDBX 客户端接入指南。完整格式规范在 mdbx/docs

快速安装

Android:

  1. Releases 下载最新 APK。
  2. 在 Android 8.0+ 设备安装并初始化主密码。

浏览器插件 (Chrome / Edge):

  1. Monica for Browser 目录构建插件。
  2. 打开 chrome://extensions/ 并启用开发者模式。
  3. 选择“加载已解压的扩展程序”,导入 dist 目录。

已知限制

  • 由于系统兼容性原因,Monica for Android 目前在部分小米 HyperOS 设备上无法创建通行密钥(Passkey)。可以尝试酷 U 提供的解决模块:HyperMonica

Android 版本重点

核心功能

  • 本地 Vault: 所有核心凭据本地加密存储。
  • 聚合导入: 支持 KeePass 数据迁移与 Bitwarden 兼容接入。
  • 智能检索: 按标题、域名、标签快速定位凭据。
  • 生物识别解锁: 使用系统级生物识别能力提升安全与可用性。
  • TOTP 管理: 统一存储并生成动态验证码。

实现说明(专业版)

  • UI 层: Jetpack Compose + Material 3 + Navigation Compose。
  • 数据层: Room(PasswordDatabase)+ DAO + Repository。
  • 并发模型: Kotlin Coroutines + Flow。
  • 依赖注入: Koin(应用启动于 MonicaApplication)。
  • 安全能力: Android Keystore、EncryptedSharedPreferences、BiometricPrompt。
  • 同步任务: WorkManager(AutoBackupWorker)用于自动 WebDAV 备份。
  • 协议与集成: Retrofit + OkHttp(Bitwarden API)、kotpass(KeePass)、sardine-android(WebDAV)。

安全模型

  • 加密算法: AES-256-GCM(认证加密)。
  • 密钥派生: PBKDF2-HMAC-SHA256(高迭代参数)。
  • 本地保护: 主密码哈希与安全配置由本地安全组件管理。
  • 网络边界: 应用声明网络权限,主要用于 Bitwarden 联动与 WebDAV 备份/同步等在线能力。

赞助支持

如果 Monica 对你有帮助,欢迎支持持续开发与安全投入。


微信 / 支付宝扫码支持

通过 PayPal 支持 Monica Liberapay · EUR (€)

你的支持将优先用于:

  • 安全审计与加密方案强化。
  • Android 体验优化与稳定性改进。
  • 跨端功能统一与文档维护。

爱发电鸣谢

感谢每一位支持 Monica 的朋友!

本月打赏金额:¥60.00

1503384107
1503384107
¥180.00
半夏微凉
半夏微凉
¥50.00
一生
一生
¥30.00
名字太长会有傻子跟着念吗
名字太长会有傻子跟着念吗
¥30.00
LINGYU
LINGYU
¥20.00
洛初
洛初
¥15.00
Memory15
Memory15
¥10.00
爱发电用户_70c34
爱发电用户_70c34
¥10.00
NovaX
NovaX
¥10.00
爱发电用户_rywF
爱发电用户_rywF
¥10.00
御坂07833号
御坂07833号
¥10.00
爱发电用户_vR9n
爱发电用户_vR9n
¥10.00
爱发电用户_ff493
爱发电用户_ff493
¥10.00
爱发电用户_a991e
爱发电用户_a991e
¥10.00
爱发电用户_U9rq
爱发电用户_U9rq
¥10.00
不二
不二
¥10.00
爱发电用户_edaa4
爱发电用户_edaa4
¥10.00
爱发电用户_e928c
爱发电用户_e928c
¥6.00
哇哦
哇哦
¥5.00
爱发电用户_xj7t
爱发电用户_xj7t
¥5.00
Kiana Kaslana
Kiana Kaslana
¥5.00
海之南
海之南
¥5.00
重逢海风
重逢海风
¥5.00
yagaojun
yagaojun
¥5.00
可恶
可恶
¥5.00
爱发电用户_97324
爱发电用户_97324
¥5.00
Jursin
Jursin
¥5.00
Memories white
Memories white
¥5.00
爱发电用户_hAKP
爱发电用户_hAKP
¥5.00
森王
森王
¥5.00
爱发电用户_43357
爱发电用户_43357
¥5.00
坏名字qwq
坏名字qwq
¥5.00
Draking
Draking
¥5.00
希莉卡
希莉卡
¥5.00
airem
airem
¥5.00
Janson
Janson
¥5.00
爱发电用户_0e739
爱发电用户_0e739
¥5.00

开发者信息

项目分层(代码现状)

  • takagi/ru/monica/ui: Compose 页面与组件。
  • takagi/ru/monica/data: Room 实体、DAO、数据库迁移。
  • takagi/ru/monica/repository: 数据访问封装。
  • takagi/ru/monica/security: 加密、密钥与鉴权相关实现。
  • takagi/ru/monica/bitwarden: API、加密、映射、同步与视图模型。
  • takagi/ru/monica/autofill: 自动填充服务与流程。
  • takagi/ru/monica/passkey: Android 14+ Credential Provider 相关实现。
  • takagi/ru/monica/workers: 后台任务(如自动 WebDAV 备份)。
  • mdbx: Monica MDBX 本地数据库格式的 Rust workspace 与客户端接入文档。

当前已使用的成熟组件(仓库可验证)

  • Android UI: Jetpack Compose, Material 3, Navigation Compose。
  • 数据与状态: Room, DataStore Preferences, ViewModel。
  • 安全: Android Keystore, EncryptedSharedPreferences, BiometricPrompt。
  • 网络与协议: Retrofit, OkHttp, Kotlinx Serialization。
  • 同步与生态: sardine-android(WebDAV), kotpass(KeePass), Bitwarden API 对接。
  • 异步与任务: Coroutines, Flow, WorkManager。
  • 其他能力: CameraX + ML Kit(二维码扫描), Credentials API(Passkey)。

构建与贡献

  • Android Studio: 最新稳定版。
  • JDK: 17+。
  • Android 配置: compileSdk 35targetSdk 34minSdk 26(见 Monica for Android/app/build.gradle)。
  • Android 构建基线: AGP 8.6.0,Kotlin 2.0.21,Compose BOM 2026.03.00(Material3 跟随 BOM)。
  • 版本信息以 Monica for Android/gradle/libs.versions.tomlMonica for Android/app/build.gradle 为准。
  • 浏览器端技术栈: React + TypeScript + Vite(见 Monica for Browser/package.json)。
  • 欢迎通过 Issue / PR 参与功能和安全改进。

致谢

Monica 的设计、兼容性适配与部分功能方向,受到了以下优秀开源项目和软件的启发与帮助:

  • Keyguard - Android 端密码管理器的交互设计与体验参考。
  • PixelPlayer - Android 端密码库滚动条样式参考。
  • Bitwarden - 开源密码管理生态、Vault 模型与同步能力的重要参考。
  • KeePass - 本地密码库理念与 .kdbx 生态兼容的重要基础。
  • Stratum Auth - 身份验证器体验、图标资源与相关兼容支持参考。
  • Steam Desktop Authenticator - Steam maFile 格式、Steam Guard 与交易确认兼容性的参考。
  • steamguard-cli - Steam Guard 登录、令牌迁移与确认协议实现的参考。
  • AnotherVaporAuth - Steam 移动验证器、登录批准与确认流程体验的参考。

Star History

Star History Chart


贡献者

贡献者


社区与支持


许可证

Copyright (c) 2025 JoyinJoester

Monica 基于 GNU General Public License v3.0 开源发布。

第三方图标标注

F-Droid contact

For F-Droid metadata or packaging issues, contact: [email protected]

Frequently asked questions

Is Monica free to use?

Monica is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Monica do?

Monica Pass,Password Management, 2FA Generator

What is Monica written in?

Monica is primarily written in Kotlin. Its source is publicly available at https://github.com/Monica-Pass/Monica, and it has 1,028 GitHub stars.