KeePass Core¶
Fork of KeePass 2.61.1, migrated to .NET 10 only (no .NET Framework, no Mono).
The main goal is a multiplatform library (Windows, Linux, macOS) that reads and writes KeePass databases, free of any user interface. The applications around it are demos that prove the library works.

Rules¶
- Never break KDBX 4.x databases. The most obvious. Files written by KeePass Core must still open in KeePassXC, KeePassDX, Strongbox, KeePass 2.x, ...
- KDBX 4.x only. KeePass 1.x (KDB) and KDBX 3.1 and older are being removed. This is a deliberate choice. I don't want to maintain legacy code, start from fresh, latest implementation.
- Prefer the stronger, modern option (Argon2, AES-256, ChaCha20) wherever the format allows it.
- No native C/C++ library to ship. Only calls to libraries of the operating system.
Projects¶
| Project | Role | Platforms | Roadmap |
|---|---|---|---|
| KeePassCoreLib | The library (main goal) | Windows, Linux, macOS | Roadmap |
| KeePassCore | WinForms application | Windows (tested on Wine) | Roadmap |
| KeePassCore.CLI | Terminal application with TUI library | Windows, Linux, macOS (tested on Linux) | Roadmap |
| KeePassCore.Security.Memory | Protection of secrets in process memory, future NuGet package | Windows, Linux, macOS (tested on Linux) | Roadmap |
| TrlUtil | Translation tool of the WinForms application | Windows | Roadmap |
Items shared by several projects: repository roadmap.
Versions¶
- 3.0.x -> 3.3.x - Mass refactoring. Pre-alpha, crashing behavior, regressions everywhere
- 3.4.x -> 3.7.x - Code improvement, bug fixes, tests, cleanup, memory leaks
- 3.8.x -> 3.9.x - Polish, open to issues and merge requests
- 4.0.x -> ∞ - Production ready
Status¶
- .NET 10 only,
net481target removed. I don't want to maintain dual code. -
CancellationTokeninstead of the obsoleteThread.Abort(see SYSLIB0006) - Code Access Security code removed (see SYSLIB0003)
- Mono code removed (workarounds, Unix branches of the WinForms application, libgcrypt)
-
.editorconfigfile for coherence, anddotnet formatutility - WinForms application can still run on Wine (crashes can still happen)
- WinForms application settings in JSON, with the enforced configuration
- No graphics library in the library; SkiaSharp in the WinForms application. The library has not need to graphics manipulation
- Argon2d is the default key derivation for new databases, managed code only (see Security)
- Atomic save: a failed save never loses the database.
- Terminal application: create, open, browse, edit and save databases. Basic layout. For now.
- Library free of Windows-specific code (DPAPI and the Windows user account key remain)
-
HttpClient/ FluentFTP instead of the obsolete web code (draft, not used yet). WebRequest is obsolete. - KDBX 3.1 and older removed (WinForms application done; library writes KDBX 4 only, still reads KDBX 3.1)
- Memory protection of the library based on KeePassCore.Security.Memory
- Unit tests (in progress: library, WinForms helpers, memory protection)
-
Debug.Assertreplaced by tests, exceptions or logs - CI (Forgejo Actions) on Windows, Linux and macOS
- Run on real Windows (only Wine so far)
Pages¶
- Security: key derivation (Argon2d, AES-KDF), benchmarks, memory protection
- Changelog
- Plugins
- Translations
- Icons
- Help
- Donations
This is a hobby project, with everything that this implies.