PulseGuard
Terminal password manager with encryption and interactive CLI.
Features
- Argon2 key derivation with AES-256 encryption
- Interactive terminal UI with search
- Password generator
- Categories, tags, and favorites
- Security audit (duplicates, reuse detection)
- Clipboard support
- CLI and Python API
Installation
pip install pulseguard
Or from source:
git clone https://github.com/KazeTachinuu/pulseguard.git
cd pulseguard
uv sync
Usage
Interactive Mode
pulseguard
Command Line
pulseguard list # List passwords
pulseguard add # Add password
pulseguard get # Get password
pulseguard edit # Edit password
pulseguard delete # Delete password
pulseguard search # Search passwords
pulseguard genpass # Generate password
pulseguard stats # Vault statistics
pulseguard check # Security health check
pulseguard --version # Show version
Python API
from pulseguard import Vault, PasswordEntry
vault = Vault()
entry = PasswordEntry("Gmail", "user@gmail.com", "password")
vault.add(entry)
# Get all entries
entries = vault.get_all()
# Search
results = vault.search("gmail")
Configuration
export PULSEGUARD_VAULT_PATH="/path/to/vault.json"
Default: ~/.pulseguard/vault.json
Security
- Argon2id: 2 iterations, 64 MiB memory, 4 parallelism
- File permissions: 0600
- Master password always required
- AES-128 (Fernet) encryption for all vault data
Development
uv sync # Install dependencies
./setup-hooks.sh # Install git hooks
uv run pytest # Run tests
uv run ruff check src tests # Lint
uv run black src tests # Format
License
MIT
Release files for pulseguard 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pulseguard-0.5.1.tar.gz | 77.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pulseguard-0.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 106.2 kB
Release files / pulseguard-0.5.1.tar.gz
| Download URL | pulseguard-0.5.1.tar.gz |
|---|---|
| Size | 77.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2d8d11194063b69258f67c50f64032a46b03e1da9f29a8ae8d4770bd376eb77d
|
|
BLAKE2b-256 checksum How to use checksums |
b7cbd1a004766afb4b8f51d4268ac98356bc67569684c1aaa340f29d5deb0d87
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 17, 2025.
Transparency logRelease files / pulseguard-0.5.1-py3-none-any.whl
| Download URL | pulseguard-0.5.1-py3-none-any.whl |
|---|---|
| Size | 28.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ced0389c66b6230e26c32e293b463c2385f75caa229c60837528791e0d68dde9
|
|
BLAKE2b-256 checksum How to use checksums |
78bd4a7f7b67ff60581dba0a194ddf3064e471b49582f92a41a9e7f8a06c3975
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 17, 2025.
Transparency log