A secure command-line TOTP (Time-based One-Time Password) manager with local encryption.
If you find this tool useful, consider buying me a coffee!
- 🔐 Local encryption using AES-256-GCM
- 🕒 Real-time TOTP code updates
- 💾 Secure local storage in user's home directory
- 🔄 Dynamic display with countdown timer
- 🎨 Colored output for better readability
- 🏷️ Device tagging and filtering
fauthy stores your TOTP secrets locally with strong encryption:
- AES-256-GCM encryption
- Random IV for each encryption
- Authentication tags to verify data integrity
- Encryption key stored securely in
.fauthy/.key
- File permissions set to user-only (0o600)
npm install -g fauthy
fauthy init
Creates necessary directories and encryption key.
fauthy add <deviceName> <secret>
# Example:
fauthy add github JBSWY3DPEHPK3PXP
fauthy list
Shows a real-time updating table with:
- Device names
- Current TOTP codes
- Creation dates
- Remaining time until code refresh
fauthy get <deviceName>
# Example:
fauthy get github
fauthy remove <deviceName>
fauthy rename <oldName> <newName>
fauthy add <deviceName> <secret> -t <tag>
fauthy list -t <tag>
fauthy tag <deviceName> <tag>
Fauthy stores data in your home directory:
~/.fauthy/data.enc
: Encrypted device data~/.fauthy/.key
: Encryption key
- Generates a random 16-byte IV
- Uses AES-256-GCM for encryption
- Stores data in format:
iv:authTag:encryptedData
- SHA-1 hashing (standard for most services)
- 6-digit codes
- Node.js >= 14.0.0
- npm
git clone https://github.com/fatihguzeldev/fauthy.git
cd fauthy
npm install
npm run build
npm start
- Fork the repository
- Create your feature branch
- Commit using conventional commits
- Push to your branch
- Create a Pull Request
MIT