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.2.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.2-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file pyvault_cli-1.0.2.tar.gz.

File metadata

  • Download URL: pyvault_cli-1.0.2.tar.gz
  • Upload date:
  • Size: 19.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyvault_cli-1.0.2.tar.gz
Algorithm Hash digest
SHA256 faa125c6a797345436c0a9ee6f6167c829b90737d72d1d05fbb5375bdbbd5204
MD5 982b17e3412bbbc672813e584655895d
BLAKE2b-256 5ffb2c007fbe72a73bb2e49a699496c64175de4bb286b419637dd909421197a6

See more details on using hashes here.

File details

Details for the file pyvault_cli-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: pyvault_cli-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyvault_cli-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 525ea0c414359f97a67d24c26925cf2bebc0ea019a2ff5c8c2f1d33270205632
MD5 31262a709f5aff07328a3f6a01cd91f0
BLAKE2b-256 4355ff226f3e8882806dd7499ca6a95b08c272db9a9657d61add454b4c8e202e

See more details on using hashes here.

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