password-cli


Namepassword-cli JSON
Version 0.1.6 PyPI version JSON
download
home_pagehttps://github.com/umuttopalak/pass-cli
SummaryA secure command-line password manager with sudo authentication
upload_time2025-01-18 11:30:32
maintainerNone
docs_urlNone
authorUmut Topalak
requires_python>=3.8
licenseNone
keywords password-manager security cryptography cli command-line sudo
VCS
bugtrack_url
requirements click cryptography keyring pyperclip
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pass-cli

[![PyPI version](https://badge.fury.io/py/password-cli.svg)](https://badge.fury.io/py/password-cli)
[![Python versions](https://img.shields.io/pypi/pyversions/password-cli.svg)](https://pypi.org/project/password-cli/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

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

```bash
pip install password-cli
```

## Quick Start

1. Initialize the password manager:
```bash
pass-cli init
```
This will prompt you to set up your encryption key or generate a secure random one.

2. Authenticate with sudo:
```bash
pass-cli auth
```

## Usage

### Generate Passwords

Generate a random secure password:
```bash
pass-cli generate -l 16
```

Generate and store a password:
```bash
pass-cli generate -l 16 -s github -u johndoe
```

### Store Passwords

Store an existing password:
```bash
pass-cli store -s github -u johndoe -p your-password
```

### Retrieve Passwords

Retrieve a stored password:
```bash
pass-cli retrieve -s github -u johndoe
```

### Check Authentication

Check sudo authentication status:
```bash
pass-cli auth-check
```

### List Passwords

List all stored passwords:
```bash
pass-cli list
```

List passwords for a specific service:
```bash
pass-cli list -s github
```

### Delete Passwords

Delete a stored password (with confirmation):
```bash
pass-cli delete -s github -u johndoe
```

Delete a stored password without confirmation:
```bash
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 `secrets` module
- 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

1. Clone the repository:
```bash
git clone https://github.com/yourusername/pass-cli.git
cd pass-cli
```

2. Create and activate virtual environment:
```bash
python -m venv venv
source venv/bin/activate  # Linux/Mac
# or
venv\Scripts\activate     # Windows
```

3. Install dependencies:
```bash
pip install -r requirements.txt
pip install -r requirements-dev.txt
```

4. Run tests:
```bash
pytest
```

## Contributing

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Acknowledgments

- Built with [Click](https://click.palletsprojects.com/)
- Uses [cryptography](https://cryptography.io/) for secure encryption
- Integrates with system keyring using [keyring](https://pypi.org/project/keyring/)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/umuttopalak/pass-cli",
    "name": "password-cli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "password-manager, security, cryptography, cli, command-line, sudo",
    "author": "Umut Topalak",
    "author_email": "umuttopalak@hotmail.com",
    "download_url": "https://files.pythonhosted.org/packages/20/f8/654f39f860f62b23ab657fa97b664c8d729cec08f247e65077a9d80c5270/password_cli-0.1.6.tar.gz",
    "platform": null,
    "description": "# pass-cli\n\n[![PyPI version](https://badge.fury.io/py/password-cli.svg)](https://badge.fury.io/py/password-cli)\n[![Python versions](https://img.shields.io/pypi/pyversions/password-cli.svg)](https://pypi.org/project/password-cli/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nA secure command-line password manager with sudo authentication.\n\n## Features\n\n- Secure password storage with AES-256 encryption\n- Generate strong random passwords\n- Store and retrieve passwords for different services\n- Sudo authentication for added security\n- Secure encryption key management\n- System keyring integration\n\n## Installation\n\n```bash\npip install password-cli\n```\n\n## Quick Start\n\n1. Initialize the password manager:\n```bash\npass-cli init\n```\nThis will prompt you to set up your encryption key or generate a secure random one.\n\n2. Authenticate with sudo:\n```bash\npass-cli auth\n```\n\n## Usage\n\n### Generate Passwords\n\nGenerate a random secure password:\n```bash\npass-cli generate -l 16\n```\n\nGenerate and store a password:\n```bash\npass-cli generate -l 16 -s github -u johndoe\n```\n\n### Store Passwords\n\nStore an existing password:\n```bash\npass-cli store -s github -u johndoe -p your-password\n```\n\n### Retrieve Passwords\n\nRetrieve a stored password:\n```bash\npass-cli retrieve -s github -u johndoe\n```\n\n### Check Authentication\n\nCheck sudo authentication status:\n```bash\npass-cli auth-check\n```\n\n### List Passwords\n\nList all stored passwords:\n```bash\npass-cli list\n```\n\nList passwords for a specific service:\n```bash\npass-cli list -s github\n```\n\n### Delete Passwords\n\nDelete a stored password (with confirmation):\n```bash\npass-cli delete -s github -u johndoe\n```\n\nDelete a stored password without confirmation:\n```bash\npass-cli delete -s github -u johndoe --force\n```\n\n## Security Features\n\n- AES-256 encryption for all stored passwords\n- PBKDF2 key derivation with high iteration count\n- Secure random password generation using `secrets` module\n- System keyring integration for encryption key storage\n- Sudo authentication requirement for all operations\n- Local storage only - no cloud sync for enhanced security\n- Safe deletion with confirmation mechanism\n\n\n## Development Setup\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/yourusername/pass-cli.git\ncd pass-cli\n```\n\n2. Create and activate virtual environment:\n```bash\npython -m venv venv\nsource venv/bin/activate  # Linux/Mac\n# or\nvenv\\Scripts\\activate     # Windows\n```\n\n3. Install dependencies:\n```bash\npip install -r requirements.txt\npip install -r requirements-dev.txt\n```\n\n4. Run tests:\n```bash\npytest\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- Built with [Click](https://click.palletsprojects.com/)\n- Uses [cryptography](https://cryptography.io/) for secure encryption\n- Integrates with system keyring using [keyring](https://pypi.org/project/keyring/)\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A secure command-line password manager with sudo authentication",
    "version": "0.1.6",
    "project_urls": {
        "Bug Tracker": "https://github.com/umuttopalak/pass-cli/issues",
        "Documentation": "https://github.com/umuttopalak/pass-cli#readme",
        "Homepage": "https://github.com/umuttopalak/pass-cli",
        "Source Code": "https://github.com/umuttopalak/pass-cli"
    },
    "split_keywords": [
        "password-manager",
        " security",
        " cryptography",
        " cli",
        " command-line",
        " sudo"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9222b925399d5f09c38257da12e58da3688dca641dd1a157da7ea51633e4b17e",
                "md5": "62f962af41813fb35e86810de1c87d72",
                "sha256": "f574aee7258e309c6b5f4ad778f5eafbfc82d2a15ae8d99254687b553962d190"
            },
            "downloads": -1,
            "filename": "password_cli-0.1.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "62f962af41813fb35e86810de1c87d72",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 13019,
            "upload_time": "2025-01-18T11:30:30",
            "upload_time_iso_8601": "2025-01-18T11:30:30.467132Z",
            "url": "https://files.pythonhosted.org/packages/92/22/b925399d5f09c38257da12e58da3688dca641dd1a157da7ea51633e4b17e/password_cli-0.1.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "20f8654f39f860f62b23ab657fa97b664c8d729cec08f247e65077a9d80c5270",
                "md5": "2af191c0d66b77e94c78d23551d9a419",
                "sha256": "4f4e0c015be654ee7c3f9689e049bbfda012cfbc5b47fb018fa0b7c2c7fdac3c"
            },
            "downloads": -1,
            "filename": "password_cli-0.1.6.tar.gz",
            "has_sig": false,
            "md5_digest": "2af191c0d66b77e94c78d23551d9a419",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 12614,
            "upload_time": "2025-01-18T11:30:32",
            "upload_time_iso_8601": "2025-01-18T11:30:32.588430Z",
            "url": "https://files.pythonhosted.org/packages/20/f8/654f39f860f62b23ab657fa97b664c8d729cec08f247e65077a9d80c5270/password_cli-0.1.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-18 11:30:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "umuttopalak",
    "github_project": "pass-cli",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "click",
            "specs": [
                [
                    ">=",
                    "8.0.0"
                ]
            ]
        },
        {
            "name": "cryptography",
            "specs": [
                [
                    ">=",
                    "3.4.7"
                ]
            ]
        },
        {
            "name": "keyring",
            "specs": [
                [
                    ">=",
                    "24.0.0"
                ]
            ]
        },
        {
            "name": "pyperclip",
            "specs": [
                [
                    ">=",
                    "1.8.2"
                ]
            ]
        }
    ],
    "lcname": "password-cli"
}
        
Elapsed time: 0.43839s