smart-2fa-manager-cli v1.1.0

Lightweight, offline, independent TOTP 2FA manager for Linux

No cloud, no phone required. Store your secrets locally, generate codes, create encrypted backups, and sync with Google Authenticator via QR codes.

Python 2FA Security Linux TOTP Offline

smart-2fa-manager-cli — lightweight, offline, independent TOTP 2FA manager for Linux in Python (CLI).

No cloud, no phone required. Store your secrets locally, generate codes, create encrypted backups, and sync with Google Authenticator via QR codes.

  • Lightweight — minimal Python script
  • Offline — no internet connection required
  • Encrypted Storage — AES-256 encrypted with GPG
  • QR Code Export — scan with Google Authenticator / Aegis
  • Encrypted Backups — timestamped backups with restore
  • Clipboard Integration — auto-copy TOTP codes
  • Simple Commands — intuitive CLI interface

Dependencies:

# Arch Linux
sudo pacman -S oath-toolkit gnupg qrencode python

# Debian/Ubuntu
sudo apt install oathtool gpg qrencode python3

# Fedora/RHEL
sudo dnf install oathtool gnupg2 qrencode python3

Setup:

# Clone repository
git clone https://github.com/smartlegionlab/smart-2fa-manager-cli.git
cd smart-2fa-manager-cli

# Or download directly
wget https://raw.githubusercontent.com/smartlegionlab/smart-2fa-manager-cli/main/2fa.py

# Install
chmod +x 2fa.py
sudo cp 2fa.py /usr/local/bin/2fa.py

Important!

The command 2fa.py init should only be run on first launch! If you already have a .2fa folder created earlier that already stores your services, initialization is not required; you can start using the application immediately.

# Initialize storage (creates encrypted ~/.2fa/secrets.gpg)
2fa.py init

CommandDescription
initCreate encrypted storage
add <service> <secret>Add a new service
get <service>Generate TOTP code (copies to clipboard)
listList all service names
show-allList all services with current codes
del <service>Delete a service
showShow all secrets in plain text (⚠️ unsafe)
qr <service>Show QR code to scan with phone
backupCreate encrypted backup with timestamp
restore <file>Restore from encrypted backup
aboutShow author, repository and license info
versionShow version number
helpShow help message

Basic Usage:

# Important! This command should only be run on first launch!!!
# Run only if you don't have a ~/.2fa folder
2fa.py init

# Add a service (secret from website QR code)
2fa.py add github JBSWY3DPEHPK3PXP

# Get TOTP code (auto-copies to clipboard)
2fa.py get github

# Show all services with current codes
2fa.py show-all

# Export QR code to phone (Google Authenticator / Aegis)
2fa.py qr github

# Create encrypted backup (saved to ~/.2fa/backups/)
2fa.py backup

# Restore from backup
2fa.py restore ~/.2fa/backups/secrets.2026-04-06.gpg

# Show version
2fa.py version

# Show author and repository info
2fa.py about

~/.2fa/
├── secrets.gpg          # Encrypted master storage
└── backups/
    └── secrets.2026-04-06_14-30-00.gpg

  • Secrets are stored locally in ~/.2fa/secrets.gpg (AES-256 encrypted with GPG)
  • No internet connection required — codes generated locally using oathtool
  • Backups are encrypted with the same password
  • QR codes let you import secrets into Google Authenticator / Aegis
  • Lost your phone? Just re-scan QR codes from your Linux machine

  • Your GPG password is never stored
  • Backup files are encrypted with the same password
  • 2fa.py show displays all secrets in plain text — use in secure environment only
  • Keep backups in a safe place (encrypted USB drive, offline storage)

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