Skip to main content

A local-first TUI password manager for Linux.

Project description

🔐 PassVault

A local TUI (Terminal User Interface) password manager for Linux.
Credentials are encrypted with Argon2id + AES-GCM and never leave your machine.


Features

Key Action
/ Open vault selector overlay
n Create a new vault
g Add a new credential to the current vault
f Search credentials by name
e Export current vault as an encrypted .pvault archive
i Import a vault from a .pvault archive
ctrl+d Delete the current vault (requires typing vault name)
ctrl+g Auto-generate a strong password (inside Add Credential panel)
ctrl+v Paste from clipboard into any input field

Requirements

System dependency

PassVault uses xclip for clipboard operations:

sudo apt install xclip        # Debian / Ubuntu
sudo pacman -S xclip          # Arch
sudo dnf install xclip        # Fedora

Python

  • Python 3.10+

Installation

From PyPI

pip install passvault

From source

git clone https://github.com/Senume/PassVault.git
cd PassVault
pip install -e .

Running

passvault

Data & log paths

PassVault resolves paths in priority order:

System path (root) User fallback Env override
Vaults /etc/passvault/vaults ~/.local/share/passvault/vaults $PASSVAULT
Logs /var/log/passvault/passvault.log ~/.local/state/passvault/passvault.log $PASSVAULT_LOG

Directories are created automatically on first run.

To grant your user write access to the system paths:

sudo mkdir -p /etc/passvault/vaults /var/log/passvault
sudo chown -R $USER /etc/passvault /var/log/passvault

Usage walkthrough

1 — Create a vault

Press n, enter a vault name and master password (confirmed twice). Press Enter.

2 — Add credentials

Press g (a vault must be selected first via /).
Fill in Name, Username, Password — or press Ctrl+G to auto-generate a strong password.
Press Enter to confirm, then enter the vault master password.

3 — View credentials

Select a credential from the list and press Enter.
Enter the master password to unlock.
Press c to copy the username or p to copy the password to clipboard.
Press Esc to close.

4 — Search

Press f to focus the search bar. Type to filter credentials by name in real time. Press Esc to clear.

5 — Export / Import

  • Export (e): saves the current vault as an encrypted .pvault zip to a path you specify (default: ~/PassVault_exports/).
  • Import (i): restores a vault from a .pvault file path.

The archive keeps credentials AES-GCM encrypted — no master password is needed for the transfer itself.

6 — Delete a vault

Press Ctrl+D, then type the vault name exactly to confirm permanent deletion.


Security

  • KDF: Argon2id (time cost 3, memory 64 MB, parallelism 1)
  • Encryption: AES-256-GCM per credential — each .ptr file is independently encrypted
  • Master password: never stored; derived key exists only in memory during a session
  • Clipboard: copy operations use xclip; clear the clipboard manually after use

Development

git clone https://github.com/Senume/PassVault.git
cd PassVault
pip install -e ".[dev]"

# Run tests
PYTHONPATH=$PWD pytest -q

# Run the app
PASSVAULT=data passvault

License

MIT — see LICENSE

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

passvault_cli_tool-1.0.0.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

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

passvault_cli_tool-1.0.0-py3-none-any.whl (30.2 kB view details)

Uploaded Python 3

File details

Details for the file passvault_cli_tool-1.0.0.tar.gz.

File metadata

  • Download URL: passvault_cli_tool-1.0.0.tar.gz
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for passvault_cli_tool-1.0.0.tar.gz
Algorithm Hash digest
SHA256 cb38520435be3eadbec3addb92b610133d8f856b61ba96475f7a445c9aec3e5b
MD5 5c6408861aaad0c310e9c31ec8823d2c
BLAKE2b-256 962a34385f54b4e8feb9e75d7f41cebb7cd4154d1777d0d1a910e33fe6f99984

See more details on using hashes here.

File details

Details for the file passvault_cli_tool-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for passvault_cli_tool-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3b3f07dd90bfab18898d6a94194af41bdf0edd7da45152ca3c71a16f27313716
MD5 fa6e7639e9d48d30edb6cc021cfd3900
BLAKE2b-256 4350ac82d27e1d8b7a6f483efabd8ff356c2b7b1d8d95aa0cd411e0f29e8831d

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