A secure command-line password manager with encryption and backup
Project description
Kini - Secure Password Manager
( Your secrets are safe )
A secure command-line password manager with encryption, hashing, backup, and search capabilities.
Features
- Secure Encryption: Uses AES-256 encryption (Fernet) for all stored data
- Master Password: Single password protects all your passwords
- Password History: Track password changes with timestamps
- Search Functionality: Find passwords quickly by service name
- Backup & Restore: Create and restore from encrypted backups
- Cross-Platform: Works on Windows, macOS, and Linux
Installation
From PyPI (to be published)
pip install kini
From Source
git clone https://github.com/yourusername/kini.git
cd kini
pip install -e .
Usage
First Time Setup
kini list
# This will prompt you to create a master password
Adding Passwords
# Interactive mode
kini add
# Command line mode
kini add -s "gmail" -u "user@gmail.com" -p "mypassword"
Retrieving Passwords
# Get specific password
kini get -s "gmail"
# Search for passwords
kini search -q "mail"
# List all passwords
kini list
Password History
# View password history for a service
kini history -s "gmail"
Backup & Restore
# Create backup
kini backup
# List backups
kini backup list
# Restore from backup
kini restore -b "passwords_backup_20240101_120000.json"
Other Commands
# Delete a password
kini delete -s "gmail"
# Show version
kini --version
Security
- All passwords are encrypted using AES-256 (Fernet)
- Master password is hashed using SHA-256
- Key derivation uses PBKDF2 with 100,000 iterations
- Unique salt for each installation
- Data stored locally in
~/.kini/
Data Location
- Linux/macOS:
~/.kini/ - Windows:
%USERPROFILE%\.kini\
License
This project is licensed under the MIT License - see the LICENSE file for details.
Development and Testing
Installing Development Dependencies
# Install with development dependencies
pip install -e .[dev]
# Or install test dependencies only
pip install -r requirements-test.txt
Running Tests
# Run all tests
pytest tests/ -v
# Run tests with coverage
pytest tests/ --cov=kini --cov-report=term-missing --cov-report=html
# Using make commands
make test # Run tests
make test-cov # Run tests with coverage
make lint # Run linting
make format # Format code
make install-dev # Install dev dependencies
Using Tox for Multi-Version Testing
# Install tox
pip install tox
# Run tests across all Python versions
tox
# Run specific environments
tox -e py311 # Test Python 3.11
tox -e lint # Run linting
tox -e coverage # Run coverage report
Test Structure
tests/test_password_manager.py- Main test suitetests/conftest.py- Test configuration and fixturespytest.ini- Pytest configurationtox.ini- Tox configuration for multi-version testing
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Run the test suite:
make test - Submit a pull request
Security Considerations
- Never share your master password
- Regularly create backups
- Store backups in a secure location
- Use strong, unique passwords for your services
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
kini-1.0.0.tar.gz
(14.7 kB
view details)
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
kini-1.0.0-py3-none-any.whl
(12.8 kB
view details)
File details
Details for the file kini-1.0.0.tar.gz.
File metadata
- Download URL: kini-1.0.0.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ed53256d22ed67850a08980dca1eba8bec5d27dac29460215819a723c157dfd
|
|
| MD5 |
ca868924ca4988e584abfe73a981ddf4
|
|
| BLAKE2b-256 |
1553d1c459d84f7f6dcba1cd32dd4e7690c41393ed5eeae003d78199819eb547
|
File details
Details for the file kini-1.0.0-py3-none-any.whl.
File metadata
- Download URL: kini-1.0.0-py3-none-any.whl
- Upload date:
- Size: 12.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd561b7f7b85b7bcdc3948d8d2a20257d345ca4679d5cb17e13596d8a2283380
|
|
| MD5 |
27b87cbf16e5ec5e7ee8f686ca629214
|
|
| BLAKE2b-256 |
99bd6d9416618a913121e3ef175e932198fa9e9a8d5365d8294356d523b65c4d
|