kini


Namekini JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://github.com//KB-perByte/kini
SummaryA secure command-line password manager with encryption and backup
upload_time2025-07-11 08:29:04
maintainerNone
docs_urlNone
authorSagar Paul
requires_python>=3.8
licenseNone
keywords password manager security encryption cli kini
VCS
bugtrack_url
requirements cryptography
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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)

```bash
pip install kini
```

### From Source

```bash
git clone https://github.com/yourusername/kini.git
cd kini
pip install -e .
```

## Usage

### First Time Setup

```bash
kini list
# This will prompt you to create a master password
```

### Adding Passwords

```bash
# Interactive mode
kini add

# Command line mode
kini add -s "gmail" -u "user@gmail.com" -p "mypassword"
```

### Retrieving Passwords

```bash
# Get specific password
kini get -s "gmail"

# Search for passwords
kini search -q "mail"

# List all passwords
kini list
```

### Password History

```bash
# View password history for a service
kini history -s "gmail"
```

### Backup & Restore

```bash
# Create backup
kini backup

# List backups
kini backup list

# Restore from backup
kini restore -b "passwords_backup_20240101_120000.json"
```

### Other Commands

```bash
# 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

```bash
# Install with development dependencies
pip install -e .[dev]

# Or install test dependencies only
pip install -r requirements-test.txt
```

### Running Tests

```bash
# 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

```bash
# 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

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com//KB-perByte/kini",
    "name": "kini",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "password manager security encryption cli kini",
    "author": "Sagar Paul",
    "author_email": "paul.sagar@yahoo.com",
    "download_url": "https://files.pythonhosted.org/packages/15/53/d1c459d84f7f6dcba1cd32dd4e7690c41393ed5eeae003d78199819eb547/kini-1.0.0.tar.gz",
    "platform": null,
    "description": "# Kini - Secure Password Manager\n\n( Your secrets are safe )\n\nA secure command-line password manager with encryption, hashing, backup, and search capabilities.\n\n## Features\n\n- **Secure Encryption**: Uses AES-256 encryption (Fernet) for all stored data\n- **Master Password**: Single password protects all your passwords\n- **Password History**: Track password changes with timestamps\n- **Search Functionality**: Find passwords quickly by service name\n- **Backup & Restore**: Create and restore from encrypted backups\n- **Cross-Platform**: Works on Windows, macOS, and Linux\n\n## Installation\n\n### From PyPI (to be published)\n\n```bash\npip install kini\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/yourusername/kini.git\ncd kini\npip install -e .\n```\n\n## Usage\n\n### First Time Setup\n\n```bash\nkini list\n# This will prompt you to create a master password\n```\n\n### Adding Passwords\n\n```bash\n# Interactive mode\nkini add\n\n# Command line mode\nkini add -s \"gmail\" -u \"user@gmail.com\" -p \"mypassword\"\n```\n\n### Retrieving Passwords\n\n```bash\n# Get specific password\nkini get -s \"gmail\"\n\n# Search for passwords\nkini search -q \"mail\"\n\n# List all passwords\nkini list\n```\n\n### Password History\n\n```bash\n# View password history for a service\nkini history -s \"gmail\"\n```\n\n### Backup & Restore\n\n```bash\n# Create backup\nkini backup\n\n# List backups\nkini backup list\n\n# Restore from backup\nkini restore -b \"passwords_backup_20240101_120000.json\"\n```\n\n### Other Commands\n\n```bash\n# Delete a password\nkini delete -s \"gmail\"\n\n# Show version\nkini --version\n```\n\n## Security\n\n- All passwords are encrypted using AES-256 (Fernet)\n- Master password is hashed using SHA-256\n- Key derivation uses PBKDF2 with 100,000 iterations\n- Unique salt for each installation\n- Data stored locally in `~/.kini/`\n\n## Data Location\n\n- **Linux/macOS**: `~/.kini/`\n- **Windows**: `%USERPROFILE%\\.kini\\`\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Development and Testing\n\n### Installing Development Dependencies\n\n```bash\n# Install with development dependencies\npip install -e .[dev]\n\n# Or install test dependencies only\npip install -r requirements-test.txt\n```\n\n### Running Tests\n\n```bash\n# Run all tests\npytest tests/ -v\n\n# Run tests with coverage\npytest tests/ --cov=kini --cov-report=term-missing --cov-report=html\n\n# Using make commands\nmake test          # Run tests\nmake test-cov      # Run tests with coverage\nmake lint          # Run linting\nmake format        # Format code\nmake install-dev   # Install dev dependencies\n```\n\n### Using Tox for Multi-Version Testing\n\n```bash\n# Install tox\npip install tox\n\n# Run tests across all Python versions\ntox\n\n# Run specific environments\ntox -e py311        # Test Python 3.11\ntox -e lint         # Run linting\ntox -e coverage     # Run coverage report\n```\n\n### Test Structure\n\n- `tests/test_password_manager.py` - Main test suite\n- `tests/conftest.py` - Test configuration and fixtures\n- `pytest.ini` - Pytest configuration\n- `tox.ini` - Tox configuration for multi-version testing\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests if applicable\n5. Run the test suite: `make test`\n6. Submit a pull request\n\n## Security Considerations\n\n- Never share your master password\n- Regularly create backups\n- Store backups in a secure location\n- Use strong, unique passwords for your services\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A secure command-line password manager with encryption and backup",
    "version": "1.0.0",
    "project_urls": {
        "Bug Reports": "https://github.com/KB-perByte/kini/issues",
        "Homepage": "https://github.com//KB-perByte/kini",
        "Source": "https://github.com/KB-perByte/kini"
    },
    "split_keywords": [
        "password",
        "manager",
        "security",
        "encryption",
        "cli",
        "kini"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "99bd6d9416618a913121e3ef175e932198fa9e9a8d5365d8294356d523b65c4d",
                "md5": "27b87cbf16e5ec5e7ee8f686ca629214",
                "sha256": "bd561b7f7b85b7bcdc3948d8d2a20257d345ca4679d5cb17e13596d8a2283380"
            },
            "downloads": -1,
            "filename": "kini-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "27b87cbf16e5ec5e7ee8f686ca629214",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 12838,
            "upload_time": "2025-07-11T08:29:03",
            "upload_time_iso_8601": "2025-07-11T08:29:03.090752Z",
            "url": "https://files.pythonhosted.org/packages/99/bd/6d9416618a913121e3ef175e932198fa9e9a8d5365d8294356d523b65c4d/kini-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1553d1c459d84f7f6dcba1cd32dd4e7690c41393ed5eeae003d78199819eb547",
                "md5": "ca868924ca4988e584abfe73a981ddf4",
                "sha256": "2ed53256d22ed67850a08980dca1eba8bec5d27dac29460215819a723c157dfd"
            },
            "downloads": -1,
            "filename": "kini-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "ca868924ca4988e584abfe73a981ddf4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 14708,
            "upload_time": "2025-07-11T08:29:04",
            "upload_time_iso_8601": "2025-07-11T08:29:04.481456Z",
            "url": "https://files.pythonhosted.org/packages/15/53/d1c459d84f7f6dcba1cd32dd4e7690c41393ed5eeae003d78199819eb547/kini-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-11 08:29:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "KB-perByte",
    "github_project": "kini",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "cryptography",
            "specs": [
                [
                    ">=",
                    "3.4.8"
                ]
            ]
        }
    ],
    "tox": true,
    "lcname": "kini"
}
        
Elapsed time: 0.41997s