Skip to main content

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.

alt text


Table of Contents

  1. Key Features
  2. Security Architecture
  3. Getting Started
  4. Quick Start Guide
  5. Advanced Tools
  6. Contributing
  7. Disclaimer
  8. 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.

  1. Grant execution permissions:
chmod +x install.sh
  1. Run the installer:
./install.sh
  1. 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.

  1. Open PowerShell as Administrator in the project folder.
  2. Run the installer:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
.\install.ps1
  1. Global Access: Add your C:\path\to\py-vault\venv\Scripts folder 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyvault_cli-1.0.4.tar.gz (19.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyvault_cli-1.0.4-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

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

Hashes for pyvault_cli-1.0.4.tar.gz
Algorithm Hash digest
SHA256 467d4585cc04d05fa8e600e6922938ba17aaf70ec7eee3ac4c1324e9449303b9
MD5 329fb90174aa49226614c3e5a2d96d46
BLAKE2b-256 0993b70fffa5652348c988cf8635d32a04790f029079f48c3daa261e19d7a021

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvault_cli-1.0.4.tar.gz:

Publisher: release.yml on davideciaccio/py-vault

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for pyvault_cli-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 68a417686cb78edc690bba2c36fb38eb39b43f0558a1cd299d9a5b16e6a02c59
MD5 d4cbdc2bd480b6e08fdb9675a8075bc0
BLAKE2b-256 200ff6fd858acbd566fc3c98db234e5701d1fa3ecb7e52af4fd2ed5687d2b81f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvault_cli-1.0.4-py3-none-any.whl:

Publisher: release.yml on davideciaccio/py-vault

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page