Skip to main content

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

Metadata

Release files for kini 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kini 1.0.0
File Size Uploaded
kini-1.0.0.tar.gz 14.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kini 1.0.0
File Interpreter ABI Platform
kini-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 27.5 kB

Release files / kini-1.0.0.tar.gz

Download URL kini-1.0.0.tar.gz
Size 14.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2ed53256d22ed67850a08980dca1eba8bec5d27dac29460215819a723c157dfd
BLAKE2b-256 checksum
How to use checksums
1553d1c459d84f7f6dcba1cd32dd4e7690c41393ed5eeae003d78199819eb547
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.13

Release files / kini-1.0.0-py3-none-any.whl

Download URL kini-1.0.0-py3-none-any.whl
Size 12.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bd561b7f7b85b7bcdc3948d8d2a20257d345ca4679d5cb17e13596d8a2283380
BLAKE2b-256 checksum
How to use checksums
99bd6d9416618a913121e3ef175e932198fa9e9a8d5365d8294356d523b65c4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.13

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page