semvec/pypi-packages huggingface dataset:
passguard-assistant 0.3.2
Password health + hashing + security assistant: strength checks, smart suggestions, tokens, alerts.
Requires Python: >=3.10
Keywords: password, security, entropy, strength, alert, email

# PassGuard Assistant 🔐

<p align="center">
  <img src="https://raw.githubusercontent.com/sathishkevinmitnick/passguard-assistant/main/logo.png" width="180" alt="PassGuard Logo">
</p>

A privacy-friendly **Password Health + Security Assistant** library with an **interactive CLI** for terminal users.

---

## Features
- ✅ Password strength checker with **entropy score (0–100)**
- ✅ Detects **personal info** (name, DOB, phone numbers)
- ✅ Strong password generator (symbols, uppercase, lowercase, digits)
- ✅ If weak → auto-suggests **secure random password + SHA256 hash**
- ✅ Rotation reminders (1, 3, 6 months)
- ✅ Failed-attempt logging with optional email alerts
- ✅ Secure password hashing (`argon2`, `bcrypt`, `pbkdf2`)
- ✅ Password verification
- ✅ Secure token generation (`urlsafe` and `hex`)
- ✅ **Interactive CLI with terminal UI** (ready to guard!)

---

## Security & Privacy
- 🚫 **No OS-level monitoring** (no keyloggers, no clipboard access)
- ✅ Works only **inside your app/backend** with provided hooks
- 🔒 Logs (failed attempts, reminders) are fully under your control
- 📧 Email alerts are **optional** and use your SMTP credentials

---

## CLI Usage Example

```bash
passguard
npycli 0.3.0
CLI program helper/framework
Keywords: cli, npy, command line interface

# npycli

A library to create fast and easy cli programs.

Programs contain either one or many *commands*. a command is represented by
the type `Command`.  
A program with *more than one* `Command` should use the type `CLI` which manages many things.

`Command`s can be executed by using the `()`/`__call__` operator, by passing in a `list` of arguments,
and type parsers that convert a `str` to a specific type.  
ex. `{bool: lambda s: s.strip().casefold() == 'true'.strip().casefold()}`: Converts `str` to `bool`.

`CLI` will execute a specified command when using `the CLI.exec` bound function. Pass in `entries` to the function which
is a `list` of arguments, the first being the name of a `Command`.

See more [documentation](./docs).

# See [examples](./examples):

* [Simple single command program that sums numbers](./examples/summation.py)
* [Multiple command program that uses a `dict` to manage user key-value pairs](./examples/user_items.py)