![]() |
Open Source, Native, Cross-Platform 2FA App for Watch, Mobile, Desktop, Web and CLI! |
|---|
- Common functionality
- Add new accounts
- Display accounts with 2FA codes
- Save accounts to a storage
- Backup & Restore via a backup transport
- Export & Import accounts (encrypted with passkey)
- Import from other 2FA apps
- Authy (JSON format)
- 2FAS (JSON format)
- Ente (plaintext otpauth:// URIs)
- Mobile App
- Desktop App
- Web Extension
- CLI App
- Add new accounts
- Display 2FA codes with auto-refresh
- Importing from Other Apps - Guide to importing 2FA secrets from Authy, 2FAS, Ente Auth, and other authenticator apps
- Development Guide - Setup, building, and running the project
- GitHub Copilot Setup - Pre-configured environment with Java 21, Node.js 22, and Gradle caching
- JDK 17+ (recommended: JDK 21)
- Android SDK (if building Android targets)
- Xcode (if building iOS targets on macOS)
- Native toolchains for your platform (GCC/Clang for Linux, MSVC for Windows)
TwoFac/
├── sharedLib/ # Shared 2FA library (TOTP/HOTP, crypto, storage)
├── cliApp/ # CLI application (Clikt-based, native binaries)
├── composeApp/ # Compose Multiplatform UI application
├── watchApp/ # Wear OS app
└── iosApp/ # iOS application wrapper
# Baseline checks
./gradlew check
# Module tests
./gradlew :sharedLib:test
./gradlew :cliApp:test
./gradlew :composeApp:test
# Run desktop app
./gradlew :composeApp:run
# Run web app
./gradlew :composeApp:wasmJsBrowserDevelopmentRun
