A secure command-line password manager with sudo authentication
Project description
pass-cli
A secure command-line password manager with sudo authentication.
Features
- Secure password storage with AES-256 encryption
- Generate strong random passwords
- Store and retrieve passwords for different services
- Sudo authentication for added security
- Secure encryption key management
- System keyring integration
Installation
pip install password-cli
Quick Start
- Initialize the password manager:
pass-cli init
This will prompt you to set up your encryption key or generate a secure random one.
- Authenticate with sudo:
pass-cli auth
Usage
Generate Passwords
Generate a random secure password:
pass-cli generate -l 16
Generate and store a password:
pass-cli generate -l 16 -s github -u johndoe
Store Passwords
Store an existing password:
pass-cli store -s github -u johndoe -p your-password
Retrieve Passwords
Retrieve a stored password:
pass-cli retrieve -s github -u johndoe
Check Authentication
Check sudo authentication status:
pass-cli auth-check
List Passwords
List all stored passwords:
pass-cli list
List passwords for a specific service:
pass-cli list -s github
Delete Passwords
Delete a stored password (with confirmation):
pass-cli delete -s github -u johndoe
Delete a stored password without confirmation:
pass-cli delete -s github -u johndoe --force
Security Features
- AES-256 encryption for all stored passwords
- PBKDF2 key derivation with high iteration count
- Secure random password generation using
secretsmodule - System keyring integration for encryption key storage
- Sudo authentication requirement for all operations
- Local storage only - no cloud sync for enhanced security
- Safe deletion with confirmation mechanism
Development Setup
- Clone the repository:
git clone https://github.com/yourusername/pass-cli.git
cd pass-cli
- Create and activate virtual environment:
python -m venv venv
source venv/bin/activate # Linux/Mac
# or
venv\Scripts\activate # Windows
- Install dependencies:
pip install -r requirements.txt
pip install -r requirements-dev.txt
- Run tests:
pytest
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Built with Click
- Uses cryptography for secure encryption
- Integrates with system keyring using keyring
Project details
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 password_cli-0.1.6.tar.gz.
File metadata
- Download URL: password_cli-0.1.6.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f4e0c015be654ee7c3f9689e049bbfda012cfbc5b47fb018fa0b7c2c7fdac3c
|
|
| MD5 |
2af191c0d66b77e94c78d23551d9a419
|
|
| BLAKE2b-256 |
20f8654f39f860f62b23ab657fa97b664c8d729cec08f247e65077a9d80c5270
|
File details
Details for the file password_cli-0.1.6-py3-none-any.whl.
File metadata
- Download URL: password_cli-0.1.6-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f574aee7258e309c6b5f4ad778f5eafbfc82d2a15ae8d99254687b553962d190
|
|
| MD5 |
62f962af41813fb35e86810de1c87d72
|
|
| BLAKE2b-256 |
9222b925399d5f09c38257da12e58da3688dca641dd1a157da7ea51633e4b17e
|