Offline, independent TOTP 2FA manager for Linux with graphical interface
No cloud, no phone required. Store your secrets locally, generate codes, create encrypted backups.
Smart 2FA Manager Desktop — offline, independent TOTP 2FA manager for Linux with graphical interface.
No cloud, no phone required. Store your secrets locally, generate codes, create encrypted backups, and sync with Google Authenticator via QR codes.
Dependencies:
# Arch Linux sudo pacman -S python-pyqt5 oath-toolkit gnupg qrencode # Debian/Ubuntu sudo apt install python3-pyqt5 oathtool gpg qrencode # Fedora/RHEL sudo dnf install python3-pyqt5 oathtool gnupg2 qrencode
Setup:
# Clone repository git clone https://github.com/smartlegionlab/smart-2fa-manager-desktop.git cd smart-2fa-manager-desktop # Run python app.py
Main Buttons:
| Button | Description |
|---|---|
+ Add Service | Add a new TOTP service |
🔄 Refresh Codes | Manually refresh all codes |
💾 Backup | Create encrypted backup with timestamp |
📂 Restore | Restore from encrypted backup |
Table Actions:
| Button | Description |
|---|---|
📋 Copy | Copy TOTP code to clipboard |
🔑 Get | Show TOTP code in dialog |
📱 QR | Show QR code for phone import |
🗑 Delete | Delete service |
Global Shortcuts:
| Shortcut | Action |
|---|---|
Ctrl + L | Lock storage |
Ctrl + E | Exit application |
F1 | Show About dialog |
Ctrl + / | Show Keyboard Shortcuts |
Services Shortcuts:
| Shortcut | Action |
|---|---|
Ctrl + N | Add new service |
Ctrl + R | Refresh all codes |
Ctrl + B | Create backup |
Ctrl + Shift + R | Restore from backup |
Table Actions (when row selected):
| Shortcut | Action |
|---|---|
Ctrl + C | Copy code to clipboard |
Ctrl + G | Show code in dialog |
Ctrl + Q | Show QR code dialog |
Del | Delete service |
~/.2fa/
├── secrets.gpg # Encrypted master storage
└── backups/
└── secrets.2026-04-06_14-30-00.gpg
Compatible with bash and Python CLI versions!
~/.2fa/secrets.gpg (AES-256 encrypted with GPG)oathtoolCtrl + L)Your existing ~/.2fa/secrets.gpg file works without additional settings in other versions of this ecosystem!
# Just run GUI - it will detect existing storage python app.py # Enter your existing password
By using this software, you agree to the full disclaimer terms.
Software provided "AS IS" without warranty. You assume all risks.
Full legal disclaimer: See DISCLAIMER.md
License: BSD 3-Clause License