LiAuth

Your codes.
Nothing else.

A modern, open-source authenticator for Android, iOS, macOS and Windows. Offline-first, end-to-end encrypted, built around a shared Rust core.

Download

Capabilities

Everything ships in the box.

Every module below is part of the core app - no extensions, no add-ons, no premium tier.

TOTP · HOTP

One-time codes

Time-based and counter-based codes, plus Steam Guard. Accounts are detected automatically from QR codes and otpauth links - you never configure algorithms, digits or periods by hand.

RFC 6238 · RFC 4226 · STEAM · QR AUTO-DETECT

FIDO2

Passkeys

A full FIDO2 / WebAuthn credential engine lives in the core: credential creation, assertions and COSE key export, ready for platform passkey integration.

FIDO2 · WEBAUTHN · COSE EXPORT

OFFLINE

Offline-first

No cloud, no servers, no accounts. Every secret is created, stored and used on your device - nothing to sign up for, nothing to go down.

NO CLOUD · NO SERVERS · NO ACCOUNTS

AES-256

Strong encryption

The vault is sealed with AES-256-GCM under a key derived from your password with Argon2id. Device keys live in Android Keystore, the Apple Secure Enclave and the Windows credential store.

AES-256-GCM · ARGON2ID · SECURE ENCLAVE

BIOMETRY

Biometric unlock

Face ID on iOS, Touch ID on macOS, fingerprint or face on Android, Windows Hello on desktop. Convenience without weakening the vault.

FACE ID · TOUCH ID · WINDOWS HELLO

SPAKE2

Local sync

Move accounts between devices over your own Wi-Fi. Devices pair with a one-time six-digit code, the channel is end-to-end encrypted with AES-256-GCM, and data never leaves the local network.

SPAKE2 · AES-256-GCM · LAN ONLY

BACKUP

Encrypted backups

Export and import password-protected backup files - self-contained encrypted envelopes with the same construction as the vault. No cloud involved.

PORTABLE · PASSWORD-SEALED

MIGRATE

Import

Bring everything with you: Google Authenticator migration QR, Aegis and 2FAS (plain or encrypted), Authy exports, Microsoft Authenticator accounts and any list of otpauth:// URIs.

GOOGLE AUTH · AEGIS · 2FAS · AUTHY · OTPAUTH://

GROUPS

Groups

Organize accounts into custom groups such as Finance, Gaming, Social Media or Development, and filter the list with one tap.

CUSTOM GROUPS · ONE-TAP FILTER

SHIELDED

Privacy protection

The app hides its content in the task switcher and blocks screenshots and screen recording. Both protections can be turned off in Settings.

TASK-SWITCHER MASK · NO SCREENSHOTS

I18N

Localization

Every string lives in flat JSON files. English and Russian ship by default, the system language is detected automatically, and a new language is one dropped-in file - no rebuild.

EN · RU · JSON DROP-IN

DESIGN

Industrial design

A strict pure black-and-white interface: square geometry, ExtraBold Onest typography, codes in JetBrains Mono, and glass surfaces reserved for overlays only.

MONOCHROME · SQUARE GEOMETRY

Security architecture

Sealed by construction.

One password, one encrypted file, hardware-backed key slots. The chain is short enough to audit and strong enough to trust.

  1. PASSWORD

    known only to you - never stored

  2. ARGON2ID

    memory-hard KDF · 64 MiB · 3 passes

  3. AES-256-GCM VAULT

    one encrypted file · random 256-bit data key

  4. PLATFORM SECURE STORAGE

    Keystore · Secure Enclave · Credential Store

  5. AUTHENTICATION DATA

    TOTP · HOTP · Steam · passkeys

ZEROIZED MEMORY

Key material is wiped from memory immediately after use.

SINGLE-USE PAIRING

Sync codes work exactly once; a wrong code aborts the session.

REVOCABLE KEY SLOTS

Changing the password re-seals the vault and revokes all device slots.

Philosophy

Privacy is the default.

  • No telemetry.

  • No analytics.

  • No cloud.

  • No tracking.

  • No advertisements.

Your secrets never leave your device.

Open source

One Rust core, shared by every app.

All business logic - codes, crypto, vault, importers, sync - lives in a single Rust workspace, compiled natively for each platform and bridged to Kotlin and Swift. The interface is the only thing each platform writes itself.

MIT Licensed

Free to use, modify and distribute. The repository ships with CI that enforces formatting, lints and tests on every push - 52 unit tests including the official RFC 4226 and RFC 6238 vectors, and clippy running with warnings as errors.

cargo fmt --all

cargo clippy --workspace -- -D warnings

cargo test --workspace

View source on GitHub

core/

  • liauth-coreTOTP · HOTP · Steam · otpauth · passkeys
  • liauth-cryptoAES-256-GCM envelopes · Argon2id · key slots
  • liauth-vaultencrypted vault · groups · settings · backups
  • liauth-importGoogle Authenticator · Aegis · 2FAS · Authy
  • liauth-syncmDNS discovery · SPAKE2 pairing
  • liauth-ffiuniffi bindings for Kotlin and Swift

FAQ

Questions, answered.