A free, native iPhone and iPad KeePass password manager built with SwiftUI. Open .kdbx databases, unlock with passwords, key files, or biometrics, browse and edit entries, and AutoFill into apps and Safari.
- KDBX 4.x — AES-256 / ChaCha20 decryption with Argon2 key derivation
- iPad support — adaptive navigation keeps the database list visible on larger layouts while the selected vault opens in a regular-width workspace
- Composite keys — unlock with password, key file, or both. Supports binary, hex, XML v1/v2 (
.key/.keyx), and arbitrary file key formats - Passkey support — detect and authenticate with FIDO2/WebAuthn passkeys stored in KeePassXC format
- AutoFill — credential provider extension works in Safari and apps. QuickType bar suggestions with Face ID
- TOTP — live one-time password display with countdown timer
- Face ID / Touch ID — biometric database unlock, auto-unlock on launch, biometric-gated password reveal/copy
- Search — full-text search across all entries
- Sorting — sort by title, created, or modified date; ascending or descending
- Entry editing — create, edit, delete, and save entries with password generation, conflict handling, and read-only safeguards
- Favicons — opt-in website icon fetching via DuckDuckGo with disk cache
- Security hardened — AES-GCM in-memory secret encryption, exponential backoff on failed attempts, screen recording blur overlay, local-only clipboard, decompression bomb protection, constant-time HMAC comparison
- iOS 17+
- Xcode 16+
- XcodeGen
- Swift 6 (strict concurrency)
- No external SPM dependencies (except Argon2Swift for KDF)
cp BuildConfig.local.example.xcconfig BuildConfig.local.xcconfig
# Fill in DROPBOX_APP_KEY
xcodegen generate
open KeeForge.xcodeprojThe build uses BuildConfig.local.xcconfig for local Dropbox configuration and
BuildMetadata.xcconfig for generated values such as the git commit hash.
Select an iOS 17+ simulator or device, then build and run.
- Add one or more
.kdbxdatabases from Files, iCloud Drive, or supported cloud providers - Select a database, then unlock with a master password, key file, biometrics, or a supported combination
- Browse groups and entries, search, edit, and save changes
- Use AutoFill in Safari and apps — credentials appear in the QuickType bar
KeeForge/
├── App/ # App entry point, adaptive root shell, scene lifecycle
├── Models/ # KDBX parser/writer, crypto, edit draft, TOTP, passkey
├── Services/ # Database list persistence, local save, cloud sync, Keychain, bookmarks
├── ViewModels/ # DatabaseListViewModel, DatabaseViewModel, TOTPViewModel
├── Views/ # SwiftUI views (database list, unlock, group/entry browsing, editor, settings, tip jar)
AutoFillExtension/ # AutoFill credential provider + passkey authentication
KeeForgeTests/ # Unit tests
KeeForgeUITests/ # UI tests (XCUITest)
TestFixtures/ # Test .kdbx databases and key files
KeeForge collects zero data — no analytics, no telemetry, no crash reports. All data stays on device. Network requests are limited to opt-in favicon fetching (domain only, no credentials sent). See privacy policy.
CHANGELOG.md— version historyROADMAP.md— planned product work and open prioritiesAGENTS.md— context for AI coding agentsKeeForge/**/README.md,AutoFillExtension/README.md,KeeForgeTests/README.md,TestFixtures/README.md— task-oriented folder docs for contributors and coding agentsdocs/— implementation specs, security audit, privacy policy
- Email: support@keeforge.com
- Issues: GitHub Issues
Start with AGENTS.md, then open the folder-local README.md closest to the code you are changing. The local docs are the fastest route to current architecture and test guidance.
GPLv3 — see LICENSE for details.