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.pvaultzip to a path you specify (default:~/PassVault_exports/). - Import (
i): restores a vault from a.pvaultfile 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
.ptrfile 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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb38520435be3eadbec3addb92b610133d8f856b61ba96475f7a445c9aec3e5b
|
|
| MD5 |
5c6408861aaad0c310e9c31ec8823d2c
|
|
| BLAKE2b-256 |
962a34385f54b4e8feb9e75d7f41cebb7cd4154d1777d0d1a910e33fe6f99984
|
File details
Details for the file passvault_cli_tool-1.0.0-py3-none-any.whl.
File metadata
- Download URL: passvault_cli_tool-1.0.0-py3-none-any.whl
- Upload date:
- Size: 30.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b3f07dd90bfab18898d6a94194af41bdf0edd7da45152ca3c71a16f27313716
|
|
| MD5 |
fa6e7639e9d48d30edb6cc021cfd3900
|
|
| BLAKE2b-256 |
4350ac82d27e1d8b7a6f483efabd8ff356c2b7b1d8d95aa0cd411e0f29e8831d
|