A CLI password manager that encrypts and stores your passwords locally using cryptmoji — an encryption library that encodes your passwords as emoji sequences. All data is stored locally on your machine, never in the cloud.
- Secure local storage — passwords are encrypted and saved to a local
.vault.jsonfile - Master key authentication — vault access is protected by an encrypted master key stored in
.master.json - Add, view, edit and delete password entries
- Password generator — generates strong random passwords of a chosen length (8–32 characters)
- Clipboard support — generated and retrieved passwords can be copied directly to your clipboard
- Emoji encryption — passwords are stored and displayed as emoji sequences via cryptmoji
- Python 3.10+
- pip
# Clone the repository
git clone https://github.com/yourusername/password-manager.git
cd password-manager
# Create and activate a virtual environment
python -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txtpython main.pyOn first run you will be prompted to set up a master key. On subsequent runs you will be asked to authenticate before accessing your vault.
1. Add password
2. Get password
3. List services
0. Exit
Add password
Enter the service: CS50
Enter the username: student@cs50
1. Enter the password
2. Generate a strong password
Enter the length of the password [8-32]: 17
Generated password: 🧟❔🆓🈲🩸🆙🈺🩹🧾🪓✅🧢🧹🧞🈁🈵➖
Password copied to clipboard
Password added successfully!
Enter the service: Google
Username: user@gmail.com
Password: 🆙🈁🆚🆕🆕🃏🆖❔🈁🆙
1. Copy to clipboard
2. Show password
0. Go back
Services
1. Google
2. Facebook
3. GitHub
0. Go back
From the list you can select any service to view, edit, or delete its entry.
- Vault — the core class responsible for creating and managing the vault, authenticating the user, and handling all CRUD operations on password entries
- Encryption — all passwords are encrypted with
cryptmojibefore being stored, and decrypted only when explicitly requested by the authenticated user - Storage —
.vault.jsonstores encrypted password entries,.master.jsonstores the encrypted master key. Both files are created automatically on first run - Password generation — uses Python's
randomandstringmodules to generate cryptographically random printable passwords - CLI — built with click for clean and easy terminal interaction
- Passwords never leave your machine — there is no network communication or cloud sync
- Both the vault and master key are encrypted at rest
- The master key is never stored in plaintext