Skip to content

Techvian/TwoFac

 
 

Repository files navigation

TwoFac logo

TwoFac


Open Source, Native, Cross-Platform 2FA App for Watch, Mobile, Desktop, Web and CLI!

Kotlin Compose Multiplatform

Android iOS watchOS Wear OS macOS Windows Ubuntu Web Chrome Extension Firefox Extension CLI macOS CLI Windows CLI Linux

two-fac-demo

ROADMAP

  • Common functionality
    • Add new accounts
    • Display accounts with 2FA codes
    • Save accounts to a storage
    • Delete account storage
    • Backup & Restore via a backup transport
    • Export & Import accounts (encrypted with passkey)
    • QR Account Scanning (Camera + Clipboard)
    • Import from other 2FA apps
      • Authy (JSON format)
      • 2FAS (JSON format)
      • Ente (plaintext otpauth:// URIs)
  • Mobile Apps (Android & iOS)
    • Biometric Authentication
    • Home / Accounts / Settings Bottom Tabs
  • Wearable Apps
    • Wear OS companion app with offline sync
    • watchOS companion app with offline sync
  • Desktop App
    • System Tray / Menu Bar Application
  • Web & Browser Extensions
    • Progressive Web App (PWA)
    • Chrome Extension
    • Firefox Extension
    • WebAuthn / Device-Credential Unlock
  • CLI App
    • Add new accounts
    • Display 2FA codes with auto-refresh
    • Delete account storage

Documentation

Development

Prerequisites

  • 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)

Project structure

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

Common commands

# 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

About

2FA Authenticator app that works on mobile, web, desktop, watches and CLI!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Kotlin 90.0%
  • TypeScript 3.5%
  • JavaScript 3.1%
  • Swift 2.6%
  • Shell 0.6%
  • HTML 0.2%