← Projects
03 / 06 - Python · Desktop · Security

Desktop 2FA
Authenticator

A desktop application for managing multiple authenticator profiles. Generates live TOTP codes with a countdown timer and handles secure local account data storage.

PythonPyQt5 asyncioTOTP aiohttpSecurity
View on GitHub ↗
Accounts TOTP Confirmations Settings
PyQt5 desktop - accounts · TOTP · confirmations · settings

What it does

A full-featured desktop authenticator built with PyQt5. Manages multiple accounts simultaneously, generates live 2FA codes with a countdown timer, and handles all types of authenticator confirmations without requiring a mobile device.

Built with PyQt5 for a native desktop feel. Stores refresh tokens locally so you never re-login on every launch. Local-first architecture - no data leaves your machine.

Key capabilities

01
Multiple accounts
Add and manage as many authenticator accounts as needed. Filter by name or identifier.
02
Live TOTP codes
Generates 2FA codes with a live countdown timer - always ready.
03
Confirmation handling
Accepts and manages pending authenticator confirmations of all types.
04
Session persistence
Stores tokens locally so you don't re-login on every launch.
05
Themes
Built-in dark, light, and high-contrast themes with live switching.

Getting started

Requires Python 3.10+. Install dependencies and run:

bash
pip install PyQt5 aiosteampy aiohttp
python main.py

To add an account, click +, select your account file and enter credentials.

Data files

FilePurpose
accounts.jsonStored account metadata (tokens, paths) - keep private
settings.jsonUser preferences: theme, refresh interval, etc.

⚠ accounts.json contains session tokens. Never share it.