Skip to main content

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 suite
  • tests/conftest.py - Test configuration and fixtures
  • pytest.ini - Pytest configuration
  • tox.ini - Tox configuration for multi-version testing

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Run the test suite: make test
  6. 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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kini-1.0.0-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

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

Hashes for kini-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2ed53256d22ed67850a08980dca1eba8bec5d27dac29460215819a723c157dfd
MD5 ca868924ca4988e584abfe73a981ddf4
BLAKE2b-256 1553d1c459d84f7f6dcba1cd32dd4e7690c41393ed5eeae003d78199819eb547

See more details on using hashes here.

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

Hashes for kini-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd561b7f7b85b7bcdc3948d8d2a20257d345ca4679d5cb17e13596d8a2283380
MD5 27b87cbf16e5ec5e7ee8f686ca629214
BLAKE2b-256 99bd6d9416618a913121e3ef175e932198fa9e9a8d5365d8294356d523b65c4d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page