# 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"
}