A secret storage manager (2FA codes, secret notes) with built-in encrypted backup. It can create encrypted backups to a portable PDF document that you can print (as a hard copy) or save anywhere to restore from later.
It has advanced security features which promote plausible deniability (killcodes and hidden items) and can be used as an ultimate offline backup for storing all your secret data. There is purposely no automatic or online backup, so you never need to worry about where your data might be going.
There's a few ways that you can use Vault to store your data:
-
Super secret data
- Store data you really don't want to be accessed in encrypted notes, like cryptocurrency private keys. Hide them and add a killcode so, if under duress, you can wipe them with plausible deniability. Restore from a backup when you get home.
-
Store OTP codes
- 2FA OTP codes provide a second layer of security for accessing your online accounts and are strongly recommended to setup whereever possible. Vault can store these codes natively and can replace other apps like Google Authenticator. Google Authenticator, in particular, has a far from ideal backup solution (automatic sync to Google's servers) or a manual QR code-based transfer. Neither match the security guarantees of Vault.
- Platform native: it should look like Apple made this app.
- Modern: we should use modern features and push for fast deprecations.
- Open source: no binary dependencies or obfuscated stuff.
- Robust: test-driven development, modular PRs/commits.
- OTP codes
- Notes
- Markdown notes
- Encrypted notes
- Item tags
- Instant item search
- Paper backups
- Fully offline, no servers at all
- Plausible deniability of item existance with killcodes and hidden items
- Tested: high level of test coverage, mockolo for mocking, adopting Swift Testing whereever possible, snapshot tests
- Safe: Swift 6 concurrency
- Modern: iOS 18, SwiftUI, Structured Concurrency
- Availability: iPhone & iPad Support
- Modular: Swift Package w/ multiple targets
- Resilient: everything should be versioned, we never need to break old clients, old backups should always be able to be restored (>= version 2.0)
Development takes place in /Vault
, so take a look in there.
As soon as we are able, we will be dropping the xcodeproj project wrapper and going all-in on the Swift Package Manager.
Vault.xcworkspace
what you should open/Vault
Swift Package that defines targets used by the app, build settings, tooling./VaultApp
minimal wrapper that packages this into an executable application.