╔══════════════════════════════╗ ║ A E T H E R V A U L T ║ ║ Encrypted Password Vault ║ ╚══════════════════════════════╝
AetherVault
Encrypted, local-first password manager
Store, organize, and protect your credentials — encrypted with AES-256, right on your machine.
Your data stays yours. No cloud. No servers.
Screenshots
Features
- AES-256 encryption — every password encrypted with Fernet (cryptography library), key derived with PBKDF2-SHA256
- Master password auth — setup/login flow; only the PBKDF2 hash is stored
- Credential management — add, edit, delete, search, sort, filter
- Password generator — configurable length and character sets
- Password strength meter — real-time scoring as you type
- Password health report — scan for weak, reused, or short passwords
- Category & tag filters — dynamic dropdowns, category click-to-filter
- Custom fields — key/value pairs on any entry (JSON-backed)
- Rich text notes — bold / italic / underline formatting toolbar
- Favicon auto-fetch — site icons pulled from Google's service
- System tray — minimize to tray, quick-lock from the tray menu
- Dark / light theme — toggle in Settings, persists across sessions
- Auto-lock — configurable 1/3/5/10/30 minutes or never
- Duress password (optional) — entering it at login permanently destroys the vault and all backups, indistinguishable from a failed login
- Clipboard auto-clear — copied passwords clear after 15 seconds
- One-click backup — timestamped filenames, auto-rotation keeps the 5 most recent
- CSV import / export — bulk add or migrate from other managers
- Duplicate detection — find and remove entries with matching title + username
- Portable mode — all data stays in the app directory (
.portablemarker) - Startup integrity check — auto-detects corruption and recovers from backup
Download a Pre-Built Executable
No Python or pip needed. Grab the binary for your platform from the Releases page (or the latest Actions build artifacts):
Prefer a package manager?
pip install aethervault-py(PyPI) works on Linux, macOS, and Windows.
| Platform | Download |
|---|---|
| Windows (x86_64) | aethervault-windows-x86_64.exe |
| Linux (x86_64) | aethervault-linux-x86_64 |
| macOS (Apple Silicon) | AetherVault-arm64.dmg |
| macOS (Intel) | AetherVault-x86_64.dmg |
The binaries are unsigned, so Windows SmartScreen and macOS Gatekeeper may warn on first run. Windows: click More info → Run anyway. macOS: right-click the .app → Open (or
xattr -dr com.apple.quarantine AetherVault.app) if Gatekeeper blocks it. Linux: the binary expects standard Qt/X11 system libraries. Executable installs — to update, download the new binary from the Releases page (aethervault -urequires a pip or git install and will not work inside a bundled executable).
Quick Start
Install
AetherVault is on PyPI (aethervault-py) and published to GitHub Releases on every version tag.
Option 1 — pip (recommended, all platforms):
pip install aethervault-py
# or
pip install --user aethervault-py
Option 2 — Global install (editable):
git clone https://github.com/AetherSolDev/AetherVault.git
cd AetherVault
pip install --user --break-system-packages -e .
Option 3 — Virtual environment:
git clone https://github.com/AetherSolDev/AetherVault.git
cd AetherVault
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -e .
Option 4 — Build yourself (PyInstaller):
pip install pyinstaller
pyinstaller aethervault.spec
# Output in dist/aethervault/
Run
aethervault # Launch GUI (auto-detaches from terminal on Unix)
aethervault --version # Show installed version
aethervault --help # CLI usage
Usage
- First launch — set a master password (minimum 8 characters)
- Login — enter your master password to unlock the vault
- Add entries — click "Add New" and fill in the form
- Generate passwords — click "Generate" next to the password field
- Copy to clipboard — double-click a table cell or click the "Copy" buttons
- Organize — categories and tags group your entries
- Backup — File → Backup Vault (or auto-backup on save/shutdown)
| CLI Command | Description |
|---|---|
aethervault |
Launch the GUI (auto-detaches on Unix) |
aethervault --version |
Show installed version |
aethervault --debug |
Launch with debug logging |
aethervault --upgrade / -u |
Check for updates and auto-upgrade (pip install aethervault-py) |
aethervault --foreground / -f |
Keep terminal attached (debugging) |
Security
- Passwords are never stored in plain text — AES-256 via Fernet
- Master password is never stored — only its PBKDF2-SHA256 hash
- Encryption key derived from the master password hash (PBKDF2, 480K iterations)
- Clipboard auto-cleared after 15 seconds
- Auto-lock on inactivity or window focus loss
- SQLite with parameterized queries (no SQL injection)
- Startup integrity check with automatic recovery from backup
- Optional duress password — destroys the vault on coercion
Data
| Data | Location |
|---|---|
| Encrypted vault | data/aethervault.db |
| Master password hash | data/.master.key |
| App settings | data/.app_settings.json |
| Portable marker | .portable (enables portable mode) |
Documentation
Full user guide: aethervault/docs/USER_GUIDE.md
License
GPLv3 — Free as in freedom.
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 aethervault_py-6.5.0.tar.gz.
File metadata
- Download URL: aethervault_py-6.5.0.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
077cbd79fd4b46813f4376b69541c39777302e415dd2bf7f06a356b51a438e25
|
|
| MD5 |
0efc128127fa560b86b1d6ad015b514a
|
|
| BLAKE2b-256 |
12935a5b9f92ed18903b52da64fefd0bef6287a216d34325e0e9ff1562b8f32b
|
Provenance
The following attestation bundles were made for aethervault_py-6.5.0.tar.gz:
Publisher:
publish-pypi.yml on AetherSolDev/AetherVault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aethervault_py-6.5.0.tar.gz -
Subject digest:
077cbd79fd4b46813f4376b69541c39777302e415dd2bf7f06a356b51a438e25 - Sigstore transparency entry: 2364683759
- Sigstore integration time:
-
Permalink:
AetherSolDev/AetherVault@ef4bae7fa9d0af050632b8ad5cf2304e3f2233aa -
Branch / Tag:
refs/tags/v6.5.0 - Owner: https://github.com/AetherSolDev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@ef4bae7fa9d0af050632b8ad5cf2304e3f2233aa -
Trigger Event:
push
-
Statement type:
File details
Details for the file aethervault_py-6.5.0-py3-none-any.whl.
File metadata
- Download URL: aethervault_py-6.5.0-py3-none-any.whl
- Upload date:
- Size: 1.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ae0af0011c18b4ff17dd2a9fdf89eb98116c4206ec68e76fd21e910fc952fb3
|
|
| MD5 |
9d7a943de58185c7de431021cd67ac85
|
|
| BLAKE2b-256 |
f2b78ff5dcdf0d85850d6ea2ab88a4338393e3607cd0ed70f1030b10ab02f45e
|
Provenance
The following attestation bundles were made for aethervault_py-6.5.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on AetherSolDev/AetherVault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aethervault_py-6.5.0-py3-none-any.whl -
Subject digest:
6ae0af0011c18b4ff17dd2a9fdf89eb98116c4206ec68e76fd21e910fc952fb3 - Sigstore transparency entry: 2364683839
- Sigstore integration time:
-
Permalink:
AetherSolDev/AetherVault@ef4bae7fa9d0af050632b8ad5cf2304e3f2233aa -
Branch / Tag:
refs/tags/v6.5.0 - Owner: https://github.com/AetherSolDev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@ef4bae7fa9d0af050632b8ad5cf2304e3f2233aa -
Trigger Event:
push
-
Statement type: