Skip to main content

PassCheck

A cross-platform CLI tool for password security: breach checking via the HIBP API, secure password generation, and ML-powered strength scoring with specific suggestions.

Flow Diagram

flowchart TD
    CLI["CLI (passcheck.py)"]
    CH["checker.py<br/>HIBP breach check"]
    SC["scorer.py<br/>ML + fallback"]
    GEN["generator.py"]
    ML["ML pipeline<br/>(training/*)"]

    CLI --> CH
    CLI --> SC
    CLI --> GEN
    SC --> ML

Quick Install

pip install passcheck-cli

Then run passcheck anywhere.

For development, clone the repo and install in editable mode:

git clone https://github.com/NameRectified/passcheck.git
cd passcheck
pip install -e .

Usage

Interactive mode

passcheck

Shows a menu where you can pick Check or Generate without remembering flags.

Check a password

passcheck check
Password: ********

Breach Status: Found in 2,266,543 data breaches
Strength:       25/100 (weak)

Suggestions:
  • This password appears in 2,266,543 data breach(es) — never reuse it
  • Add at least one uppercase letter
  • Add at least one special character
  • Avoid sequential characters like '123' or 'abc'
  • Use a mix of upper/lowercase, digits, and special characters

Suggested replacement: :_Y8$4Ur/v-&6FuN (copied to clipboard)

You can also pass the password directly:

passcheck check yourpassword

Omitting the argument prompts hidden-ly with getpass.

Generate a password

passcheck generate -l 16

Generated:      G_j2*8TUP8?7
Strength:       65/100 (strong)
Copied to clipboard.
  • -l, --length: Password length (default: 16)

Features

  • Breach checking: Uses the Have I Been Pwned API with k-anonymity — never sends the full hash over the network.
  • Password generation: Uses secrets module. Excludes ambiguous characters (0, O, 1, l, I, |). Guarantees at least one uppercase, one lowercase, three digits, and one special character.
  • ML strength scoring: RandomForest model trained on 3500 passwords. Scores 0–100 with specific suggestions for improvement.
  • Specific suggestions: Suggestions derived from the actual password — not generic templates.

Requirements

  • Python 3.10+
  • requests, pyperclip, scikit-learn, joblib

Project Structure

passcheck/
├── src/passcheck/
│   ├── __init__.py    Package metadata
│   ├── cli.py         CLI entry point
│   ├── checker.py     Breach checking (HIBP API)
│   ├── generator.py   Password generation
│   ├── scorer.py      ML strength analysis + suggestions
│   ├── features.py    ML feature extraction
│   ├── config.py      Configuration constants
│   └── models/        Trained model (.pkl, shipped in the wheel)
├── training/          ML pipeline (features, dataset, training)
├── tests/             pytest test suite (32 tests)
├── requirements.txt
└── pyproject.toml

Running Tests

pytest tests/

License

MIT

Metadata

Release files for passcheck-cli 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for passcheck-cli 1.0.0
File Size Uploaded Provenance Actions
passcheck_cli-1.0.0.tar.gz 135.7 kB With provenance Details for passcheck_cli-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for passcheck-cli 1.0.0
File Interpreter ABI Platform Actions
passcheck_cli-1.0.0-py3-none-any.whl Python 3 none any Details for passcheck_cli-1.0.0-py3-none-any.whl

Total release size: 274.0 kB

Release files / passcheck_cli-1.0.0.tar.gz

Download URL passcheck_cli-1.0.0.tar.gz
Size 135.7 kB
Tags Source
SHA-256 checksum
How to use checksums
36ec758250a557b3457a03af96ea1189c7a317c88db3da16eb4a6103be9719ed
BLAKE2b-256 checksum
How to use checksums
7bcfeea14e445e2d2508b76bc900c92688e6e85dd344546bec2649852f555fc6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Aug 9, 2026.

Transparency log

Release files / passcheck_cli-1.0.0-py3-none-any.whl

Download URL passcheck_cli-1.0.0-py3-none-any.whl
Size 138.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b963305544ee404dfd620be095fafa47e844a451eec83370210ea6fdb6aba7ed
BLAKE2b-256 checksum
How to use checksums
42ac299cfe9c425f7c5fcfc76d99f9c3cf64e649e8165715717cb6404474f85c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Aug 9, 2026.

Transparency log

Security for passcheck-cli 1.0.0

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.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for passcheck_cli-1.0.0.tar.gz

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 Aug 9, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page