The local-first authenticator for desktop, with an Android development preview.
OTP Harbor is an open-source, local-first TOTP and 2FA authenticator for Windows, macOS, and Linux, with an Android development preview. It protects OTP seeds in an encrypted local vault and supports QR workflows, platform quick unlock, and encrypted backup and restore without requiring a cloud account.
Release status:
v2.0.0is in release-candidate testing. The first stable Windows release is being prepared for Microsoft Store certification. Current GitHub Windows/Linux RC packages are unsigned manual previews with automatic updates disabled. Android is source-only until its production signing and upgrade path are established. Use synthetic accounts and keep a tested encrypted backup.
- AES-256-GCM encrypted local vault with Argon2id password derivation
- Windows Hello and macOS quick unlock with master-password recovery
- Account creation, editing, search, deletion, QR import/export, and Google Authenticator bulk migration
- Automatic clipboard clearing and idle/session locking
- Encrypted
.totpbackup, restore, and conflict handling - English, German, French, and Spanish UI
- Native Avalonia desktop application for Windows, macOS, and Linux
- Focused Android app with biometric quick unlock, camera-based QR import, swipe actions, and the same encrypted backup format as desktop
Accounts currently use the common TOTP profile: SHA-1, six digits, and a 30-second period.
OTP Harbor recognizes both normal otpauth:// account QR codes and Google Authenticator transfer QR codes. In Google Authenticator, start Transfer accounts / Export accounts, select the accounts, then scan every generated QR code with OTP Harbor's camera action. OTP Harbor shows the number of detected accounts and asks for confirmation before changing the vault; multi-part exports prompt you to scan the next QR code.
Treat migration QR codes as secrets: anyone who captures one can recreate the exported accounts. After importing, verify several generated codes and create a fresh encrypted OTP Harbor backup.
![]() |
![]() |
| Edit accounts without exposing stored secrets | Configure quick unlock and recovery |
![]() |
![]() |
| Export an account via QR code | Unlock quickly with a recovery path |
The QR screenshot is intentionally sanitized and contains only a published synthetic test secret. Never use it for a real account.
| Action | Shortcut |
|---|---|
| Search accounts | Ctrl + F |
| Add an account | Ctrl + A |
| Edit the selected account | Ctrl + E |
| Delete the selected account after confirmation | Ctrl + D or Delete |
| Lock the vault | Ctrl + L |
| Close the active search, editor, settings view, or QR preview | Esc |
Microsoft Store is the primary Windows distribution channel. The Store listing is not public yet; the submission package and certification checklist are being prepared. Microsoft will sign the MSIX after successful certification and manage Store updates.
GitHub Releases remains the secondary channel for source-oriented users and explicit manual previews. Current RC artifacts are not part of a trusted automatic-update channel.
| Platform | Package type |
|---|---|
| Windows 10/11 x64 | Microsoft Store MSIX after certification; unsigned GitHub ZIPs are manual RC previews |
| Ubuntu 24.04 x64 | DEB or self-contained tarball |
| macOS ARM64 | Structural artifacts are built in CI; production distribution still requires signing and notarization |
| Android 9 or newer | Development source only; a public APK requires production signing and supported Android CI |
After launch, create a master password and add an account manually, scan an otpauth:// QR code, or scan each QR code from a Google Authenticator bulk export in sequence. Treat QR images, OTPs, seeds, exports, and backups as secrets.
Maintainers can follow the Microsoft Store release guide. The unsigned MSIX produced by the repository is exclusively a Partner Center submission input and must never be sideloaded or attached to a GitHub Release.
The master password is the portable recovery path. Quick unlock is a convenience and never replaces it. Keep an external encrypted export and test restoration periodically.
Report vulnerabilities privately as described in SECURITY.md. Never attach real secrets, vaults, backups, or unreviewed logs.
Windows code-signing status: The previous SignPath Foundation application was not approved at this stage. A future reapplication may be considered after the project has established broader public adoption and independent trust signals. Current GitHub preview builds are unsigned. Microsoft Store is the planned primary Windows channel; Microsoft signs an accepted Store package during certification.
The Store and optional future direct-download trust models are defined in the code signing policy. Data handling is described in the OTP Harbor privacy policy.
Install the .NET 10 SDK, then run:
git clone https://github.com/Legends/otp-harbor.git
cd otp-harbor
dotnet restore TOTP.sln --configfile NuGet.config
dotnet build TOTP.sln -c Debug
dotnet test TOTP.sln -c Debug
dotnet run --project .\TOTP.UI.Avalonia.Desktop\TOTP.UI.Avalonia.Desktop.csprojThe Android development preview is intentionally outside the desktop solution and release artifacts. Open the dedicated Android solution in Visual Studio, or see the Android development guide for its implemented scope, security notes, and build commands.
See CONTRIBUTING.md for engineering rules and docs/README.md for the maintained documentation map.
OTP Harbor is distributed under MIT. Third-party notices are in THIRD_PARTY_NOTICES.md.




