Secure CLI-based password manager with encryption and MongoDB support
Project description
██████╗ ██████╗ █████╗ ███████╗███████╗
██╔═══██╗██╔══██╗██╔══██╗██╔════╝██╔════╝
██║ ██║██████╔╝███████║███████╗███████╗
██║▄▄ ██║██╔═══╝ ██╔══██║╚════██║╚════██║
╚██████╔╝██║ ██║ ██║███████║███████║
╚══▀▀═╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝
🔐 QPass — Secure CLI Password Manager
Encrypt. Store. Retrieve. Sleep easy.
✨ What is QPass?
QPass is a lightweight, terminal-first password manager that keeps your credentials safe using industry-standard encryption — all stored securely in MongoDB. No browser plugins. No cloud accounts. Just you, your terminal, and your encrypted vault.
💡 Built for developers and power users who live in the terminal.
🚀 Features
| Feature | Description |
|---|---|
| 🔒 Military-grade encryption | PBKDF2 key derivation + Fernet symmetric encryption |
| 🖥️ Interactive CLI | Clean, intuitive command-line interface |
| 🔑 Session-based auth | Login once per session — no repeated prompts |
| 🗄️ MongoDB storage | Scalable, reliable backend for your vault |
| 🧩 Simple commands | Minimal syntax, maximum productivity |
| 🌍 Cross-platform | Works on Linux, macOS, and Windows |
📦 Installation
pip install quick-pass
Requires Python 3.8+ and a running MongoDB instance (local or Atlas).
⚡ Quick Start
# Launch QPass
qpass
# Register / login to your vault
ulogin
# Add a credential
add github MyS3cur3P@ss!
# Retrieve it anytime
get_site github
# View your entire vault
get_vault
# Logout safely
ulogout
🛠️ Commands
┌────────────────────────────────────────────────────────┐
│ QPASS COMMANDS │
├──────────────────────┬─────────────────────────────────┤
│ ulogin │ Authenticate into your vault │
│ ulogout │ End your current session │
│ add <site> <pass> │ Save encrypted credentials │
│ delete <site> │ Remove a saved entry │
│ get_vault │ List all stored sites │
│ get_site <site> │ Retrieve a specific password │
└──────────────────────┴─────────────────────────────────┘
🔐 How Encryption Works
QPass uses a two-layer security model:
Master Password
│
▼
PBKDF2-HMAC-SHA256
(100,000 iterations + salt)
│
▼
256-bit Derived Key
│
▼
Fernet Symmetric Encryption
│
▼
Encrypted Ciphertext → MongoDB
- Your master password is never stored — only a salted hash.
- Every password is encrypted using Fernet before touching the database.
- Decryption only happens in memory, during an active session.
🧱 Tech Stack
┌─────────────────────────────────────────┐
│ Language → Python 3.8+ │
│ Database → MongoDB │
│ Encryption → cryptography (Fernet) │
│ CLI → cmd / argparse │
│ Auth → PBKDF2-HMAC-SHA256 │
└─────────────────────────────────────────┘
📁 Project Structure
qpass/
├── qpass/
│ ├── __init__.py
│ ├── cli.py # CLI entry point & command loop
│ ├── auth.py # Session & user authentication
│ ├── crypto.py # Encryption / decryption logic
│ ├── db.py # MongoDB connection & queries
│ └── vault.py # Vault operations (add/get/delete)
├── README.md
├── LICENSE
├── setup.py / pyproject.toml
└── requirements.txt
🔧 Requirements
pymongo
cryptography
Install them manually:
pip install pymongo cryptography
🤝 Contributing
Contributions are welcome! Feel free to:
- 🍴 Fork the repository
- 🌿 Create a feature branch:
git checkout -b feature/cool-thing - 💾 Commit your changes:
git commit -m "Add cool thing" - 📤 Push and open a Pull Request
📄 License
This project is licensed under the MIT License — see the LICENSE file for details.
Made with 🔐 and ☕ by Aditya
"Security is not a product, but a process." — Bruce Schneier
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quick_pass-0.2.0.tar.gz.
File metadata
- Download URL: quick_pass-0.2.0.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a7607da3056920a248289f073e2d0fca03b59d1c24a556d60c81c1a9f4f82bfb
|
|
| MD5 |
ed0a23c7bd52b9cfde1ad3c69b4ad43b
|
|
| BLAKE2b-256 |
e29af4c689f979a9e0c9450346b628a7f998273667752a8377a9c860d6e3b5c7
|
File details
Details for the file quick_pass-0.2.0-py3-none-any.whl.
File metadata
- Download URL: quick_pass-0.2.0-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb285b44e98b965a315428ce95b70bdffff8748b609e9838fde29ec39cf6a28c
|
|
| MD5 |
83c20e0904aaca745067a204e6d56b93
|
|
| BLAKE2b-256 |
3299d9f62baea823a7203c64575444772470dcbab5f4b20b9a3fc7c97be4b694
|