A zero-knowledge CLI password manager with anti-automation defenses.
Project description
Py-Vault
The Security Password Manager from the Command Line.
Py-Vault is a professional-grade CLI password manager built for users who value privacy, speed, and technical transparency. It utilizes standard encryption protocols and anti-automation protections to keep your data secure.
Table of Contents
- Key Features
- Security Architecture
- Getting Started
- Quick Start Guide
- Advanced Tools
- Contributing
- Disclaimer
- License
Key Features
- Zero-Knowledge Architecture: Your Master Password is never stored; it is only used to derive encryption keys.
- Strong Encryption: AES-256-GCM authenticated encryption for all vault data.
- Migration Toolkit: Built-in formatter for Chrome, Edge, and Bitwarden exports.
- Security Audit: Automated checks for weak, short, or reused passwords.
- Anti-Automation: Typing speed analysis (Anti-Ducky) and interactive human verification.
- Emergency Wipe: Instant, secure destruction of the local vault in case of compromise.
Security Architecture
Py-Vault implements a multi-layered defense strategy:
- Key Derivation: Uses Argon2id, the winner of the Password Hashing Competition, to derive a 256-bit key from your Master Password using a unique salt.
- Data Encryption: Employs AES-256 in GCM mode. This provides both confidentiality and integrity, ensuring that if the database is tampered with, the vault will refuse to decrypt.
- Physical Security: Includes a human-verification challenge to prevent automated "Brute Force" or "Rubber Ducky" script attacks.
Getting Started
Clone the Repository
First, clone the project to your local machine using Git:
git clone https://github.com/davideciaccio/py-vault.git
cd py-vault
Installation (Linux & macOS)
The Linux installer sets up a virtual environment and creates a global wrapper in /usr/local/bin.
- Grant execution permissions:
chmod +x install.sh
- Run the installer:
./install.sh
- Usage: Open a new terminal and run
pyvault.
Installation (Windows)
First, clone the project to your local machine using Git:
git clone https://github.com/davideciaccio/py-vault.git
cd py-vault
The Windows installer configures the environment and prepares the executable.
- Open PowerShell as Administrator in the project folder.
- Run the installer:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
.\install.ps1
- Global Access: Add your
C:\path\to\py-vault\venv\Scriptsfolder to your System Environment Variables (PATH).
Quick Start Guide
1. Initialize your Vault
pyvault init
2. Add a new credential
pyvault add github --username dev_user
3. Retrieve a password (auto-copies to clipboard for 30s)
pyvault get github
4. List all services
pyvault list
Advanced Tools
Data Migration
Convert external exports into PyVault format and import them:
# 1. Format external CSV
pyvault formatter "~/Downloads/chrome_passwords.csv" ~/Desktop ready.csv
# 2. Import formatted file
pyvault import ~/Desktop/ready.csv
Security Audit
Analyze your vault to identify security risks:
pyvault audit
Emergency Wipe
Instantly destroy all local data and the database:
pyvault wipe
Contributing
Contributions are welcome! Please read the CONTRIBUTING.md for guidelines on how to submit security-related patches.
Disclaimer
This tool is provided "as is" for educational and personal use. While it implements standard cryptographic practices, the security of your data ultimately depends on the strength and secrecy of your Master Password.
License
This project is licensed under the MIT License.
Created by davideciaccio
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 pyvault_cli-1.0.4.tar.gz.
File metadata
- Download URL: pyvault_cli-1.0.4.tar.gz
- Upload date:
- Size: 19.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
467d4585cc04d05fa8e600e6922938ba17aaf70ec7eee3ac4c1324e9449303b9
|
|
| MD5 |
329fb90174aa49226614c3e5a2d96d46
|
|
| BLAKE2b-256 |
0993b70fffa5652348c988cf8635d32a04790f029079f48c3daa261e19d7a021
|
Provenance
The following attestation bundles were made for pyvault_cli-1.0.4.tar.gz:
Publisher:
release.yml on davideciaccio/py-vault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyvault_cli-1.0.4.tar.gz -
Subject digest:
467d4585cc04d05fa8e600e6922938ba17aaf70ec7eee3ac4c1324e9449303b9 - Sigstore transparency entry: 815338558
- Sigstore integration time:
-
Permalink:
davideciaccio/py-vault@3c4764d5df295dfbb7662bb37e151fc9b2f41b69 -
Branch / Tag:
refs/tags/v1.0.4 - Owner: https://github.com/davideciaccio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3c4764d5df295dfbb7662bb37e151fc9b2f41b69 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyvault_cli-1.0.4-py3-none-any.whl.
File metadata
- Download URL: pyvault_cli-1.0.4-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68a417686cb78edc690bba2c36fb38eb39b43f0558a1cd299d9a5b16e6a02c59
|
|
| MD5 |
d4cbdc2bd480b6e08fdb9675a8075bc0
|
|
| BLAKE2b-256 |
200ff6fd858acbd566fc3c98db234e5701d1fa3ecb7e52af4fd2ed5687d2b81f
|
Provenance
The following attestation bundles were made for pyvault_cli-1.0.4-py3-none-any.whl:
Publisher:
release.yml on davideciaccio/py-vault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyvault_cli-1.0.4-py3-none-any.whl -
Subject digest:
68a417686cb78edc690bba2c36fb38eb39b43f0558a1cd299d9a5b16e6a02c59 - Sigstore transparency entry: 815338565
- Sigstore integration time:
-
Permalink:
davideciaccio/py-vault@3c4764d5df295dfbb7662bb37e151fc9b2f41b69 -
Branch / Tag:
refs/tags/v1.0.4 - Owner: https://github.com/davideciaccio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3c4764d5df295dfbb7662bb37e151fc9b2f41b69 -
Trigger Event:
push
-
Statement type: