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.5.tar.gz (19.7 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.5-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyvault_cli-1.0.5.tar.gz
  • Upload date:
  • Size: 19.7 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.5.tar.gz
Algorithm Hash digest
SHA256 71234374f2c53670eac59267fa446ce459c287622b4e8b1789f3864424c068d0
MD5 b2714efc5ea9c07178dd70e62a417bf6
BLAKE2b-256 e826d14c89ecd943bbf2a898133c81f746eefa509cb599d78591f02b2fa6eca6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvault_cli-1.0.5.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.5-py3-none-any.whl.

File metadata

  • Download URL: pyvault_cli-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 14.4 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5a67a04c623b1d6653126978d7dc7667b36275816c1dc225bdc513a01077e739
MD5 cf9bf14b612efc48117607d3f57ebe11
BLAKE2b-256 35f3c554e722fb9fa26253e2bb10920ae4af31d0b1c83191d896a64b9fec5fef

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvault_cli-1.0.5-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