A secure, local-first CLI password manager
Project description
Vokul
Vokul is a local-first command-line interface (CLI) password manager designed for security and ease of use. It allows you to securely store, retrieve, and manage your sensitive credentials directly on your machine, encrypted with a master password.
Features
- Local-First Storage: Your data stays on your machine, never touching external servers.
- Strong Encryption: Utilizes
cryptographywith AES-GCM and Argon2id for key derivation. - CLI Interface: Manage your vault efficiently from the terminal.
- TOTP Support: Generate Time-based One-Time Passwords for 2FA-enabled services.
- Password History: Keeps a short history of previous passwords for each service.
- Clipboard Integration: Automatically copies passwords to clipboard and clears them after a short delay.
- Security Throttling: Protects against brute-force attacks with persistent lockout mechanisms.
- Vault Backup & Recovery: Automatic backups and self-healing from corrupted vaults.
- JSON Output: Supports machine-readable output for integration with other tools.
Installation
Prerequisites
- Python 3.8 or higher
Using pip (Recommended)
pip install vokul
From Source
- Clone the repository:
git clone https://github.com/your-repo/vokul-cli.git cd vokul-cli
- Install dependencies:
pip install -e .
Quick Start
1. Initialize Your Vault
Before you can use VOKUL, you need to initialize a new vault and set your master password. This will create a vault.vk file in your current directory.
vokul init
2. Add a New Service
Store credentials for a new service. You will be prompted for the password if not provided directly.
vokul add --service github
vokul add --service mybank --password "StrongP@ssw0rd!" --totp "JBSWY3DPEHPK3PXP"
3. Retrieve a Password
Get a password for a service. By default, it copies to your clipboard and clears after 15 seconds.
vokul get --service github
To display the password directly in the terminal (use with caution):
vokul get --service github --show
4. Generate a TOTP Code
If you've stored a TOTP secret, you can generate the current 2FA code.
vokul totp --service mybank
5. List All Services
See all services stored in your vault.
vokul list
6. Generate a Strong Password
Create a new strong password. You can specify length, exclude symbols, or generate a memorable passphrase.
vokul generate --length 20
vokul generate --memorable
vokul generate --no-symbols
7. Delete a Service
Remove a service from your vault. This requires confirmation.
vokul delete --service oldservice
8. Destruct Your Vault
Permanently delete your entire vault file. This action is irreversible.
vokul destruct --force
Usage
For a full list of commands and options, use the --help flag:
vokul --help
vokul [command] --help
Contributing
Contributions are welcome! Please see the CONTRIBUTING.md for guidelines.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contact
For questions or feedback, please open an issue on the GitHub repository.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vokul-1.0.0.tar.gz.
File metadata
- Download URL: vokul-1.0.0.tar.gz
- Upload date:
- Size: 13.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
224058a1797f427944f8593ed42424af764a67891ce0bf06601b8e5c4850d445
|
|
| MD5 |
d13b9634311ff535bff1f5fb41b328cc
|
|
| BLAKE2b-256 |
843541bb67206e34fc3449876ff67cd1854a77cf3e7d53aad833d19298a2a272
|
Provenance
The following attestation bundles were made for vokul-1.0.0.tar.gz:
Publisher:
pypi-publish.yaml on DevX-Dragon/vokul
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vokul-1.0.0.tar.gz -
Subject digest:
224058a1797f427944f8593ed42424af764a67891ce0bf06601b8e5c4850d445 - Sigstore transparency entry: 2037248832
- Sigstore integration time:
-
Permalink:
DevX-Dragon/vokul@36f2b6b0877bdfc459992502fd410e48aec34545 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/DevX-Dragon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yaml@36f2b6b0877bdfc459992502fd410e48aec34545 -
Trigger Event:
release
-
Statement type:
File details
Details for the file vokul-1.0.0-py3-none-any.whl.
File metadata
- Download URL: vokul-1.0.0-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c8238f466b421e117729405cf41db9464c88b862a9be9c91065be263ff5f09c
|
|
| MD5 |
b34e9524358075c50951b4b7dd05b7b8
|
|
| BLAKE2b-256 |
8b5f733dbd0bb00aca4c6c74713dd41a3033c0fe134e648178d34196d1c407c4
|
Provenance
The following attestation bundles were made for vokul-1.0.0-py3-none-any.whl:
Publisher:
pypi-publish.yaml on DevX-Dragon/vokul
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vokul-1.0.0-py3-none-any.whl -
Subject digest:
3c8238f466b421e117729405cf41db9464c88b862a9be9c91065be263ff5f09c - Sigstore transparency entry: 2037248959
- Sigstore integration time:
-
Permalink:
DevX-Dragon/vokul@36f2b6b0877bdfc459992502fd410e48aec34545 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/DevX-Dragon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yaml@36f2b6b0877bdfc459992502fd410e48aec34545 -
Trigger Event:
release
-
Statement type: