Authly is a Windows-first, offline desktop authenticator built with Electron, React, TypeScript, Vite, SQLite, and DPAPI OS-level encryption. It provides a secure, lightweight alternative to cloud-connected authenticator apps, keeping all multi-factor authentication (2FA/TOTP) secrets strictly local on your device.
- RFC 6238 TOTP Generation: Offline 6-digit dynamic passcode generator with real-time countdown progress.
- Account Management: Add accounts manually via secret keys, otpauth:// URIs, or scanning QR images.
- Master PIN Security: Protect app startup and sensitive account data with an encrypted Master PIN lock.
- Encrypted Backup & Recovery: Export and import full account backups protected with PBKDF2 + AES-256-GCM encryption.
- System Tray & Hotkeys: Minimize to Windows system tray, quick clipboard copy with auto-clipboard clear after 15 seconds.
- Theme & Appearance: System, dark, and light visual modes built with custom UI tokens and clean accessibility.
- GitHub Release Update Check: In-app one-click update checking against official GitHub releases.
- Isolated Renderer Security: Strict IPC sandboxing, custom authapp:// protocol, zero raw Node/filesystem access in renderer.
Authly is designed with a local-first security architecture:
- Offline Operating Mode: Secrets and database files never leave your computer.
- OS-Level Safe Storage: TOTP secrets are encrypted using Windows Data Protection API (DPAPI).
- Auto-Clipboard Clean: Copied 2FA codes are automatically wiped from system clipboard after 15 seconds.
- Zero Analytics: No telemetry, tracking, or cloud backend services.
- Windows 10/11 (x64)
- Node.js 20.19 or newer
- npm 11 or newer
Install dependencies:
npm installRun the Vite dev server and Electron app:
npm run devRun full quality gates (formatting, linting, tests, strict TypeScript build, and visual/runtime smoke testing):
npm run verifyRun individual quality checks:
npm run typecheck
npm run lint
npm test
npm run build
npm run smokePackage the standalone Windows NSIS installer:
npm run package:winInstallers and packaged outputs are generated in the dist/ directory.
Runtime data (SQLite database, encrypted Vault secrets, application settings) is stored locally in Windows %APPDATA%\authapp and is excluded from Git. Do not commit personal backups, local database files, or master PIN hashes.
This project is licensed under the MIT License. See LICENSE.