{"id":50719367,"url":"https://github.com/shazeus/passforge","last_synced_at":"2026-06-09T22:02:12.509Z","repository":{"id":358815730,"uuid":"1243192140","full_name":"shazeus/passforge","owner":"shazeus","description":"Secure password and secret generator — passwords, passphrases, PINs, tokens, and strength analysis","archived":false,"fork":false,"pushed_at":"2026-05-19T06:11:49.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-19T08:51:17.168Z","etag":null,"topics":["cli","cryptography","entropy","hibp","passphrase","password-generator","passwords","pyperclip","python","secrets","security","terminal"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shazeus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-19T06:08:13.000Z","updated_at":"2026-05-19T06:11:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/shazeus/passforge","commit_stats":null,"previous_names":["shazeus/passforge"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/shazeus/passforge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shazeus%2Fpassforge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shazeus%2Fpassforge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shazeus%2Fpassforge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shazeus%2Fpassforge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shazeus","download_url":"https://codeload.github.com/shazeus/passforge/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shazeus%2Fpassforge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34127345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","cryptography","entropy","hibp","passphrase","password-generator","passwords","pyperclip","python","secrets","security","terminal"],"created_at":"2026-06-09T22:02:12.444Z","updated_at":"2026-06-09T22:02:12.499Z","avatar_url":"https://github.com/shazeus.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ch1 align=\"center\"\u003epassforge\u003c/h1\u003e\n  \u003cp align=\"center\"\u003eSecure password and secret generator for the terminal.\u003c/p\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://pypi.org/project/passforge-cli/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/passforge-cli.svg\" alt=\"PyPI\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://pypi.org/project/passforge-cli/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/pyversions/passforge-cli.svg\" alt=\"Python\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/shazeus/passforge/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/shazeus/passforge\" alt=\"License\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/shazeus/passforge/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/shazeus/passforge\" alt=\"Stars\"\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n---\n\n**passforge** is a fast, cryptographically secure password and secret generator for the terminal. Generate strong passwords, memorable passphrases, numeric PINs, API tokens, and UUIDs — all from a single CLI tool. Analyze password strength with entropy metrics, estimate crack times, and check against the Have I Been Pwned breach database without ever sending your password over the network.\n\n- **Password generation** — Configurable length, character sets, exclusions, and required character minimums\n- **Passphrase generation** — Memorable word-based passphrases using a curated 2000-word list\n- **PIN generation** — Numeric PINs of any length using a CSPRNG\n- **Token generation** — API keys, secrets, and UUIDs in hex, base64, URL-safe, alphanumeric, or UUID format\n- **Strength analysis** — Entropy calculation, crack time estimation, character-type breakdown, and pattern detection\n- **Breach checking** — k-Anonymity HIBP lookup that never exposes your full password hash\n- **Bulk generation** — Generate hundreds of passwords at once and save to file\n- **Security profiles** — Preset recipes for common use cases (web, API keys, WiFi, admin, etc.)\n- **Clipboard support** — Optionally copy the result directly to clipboard\n- **Bare mode** — Clean output for scripting and piping to other tools\n\n## Installation\n\n```bash\npip install passforge-cli\n```\n\n## Usage\n\n```bash\n# Generate a 16-character password\npassforge gen\n\n# Generate a 24-character password, no symbols\npassforge gen -l 24 --no-symbols\n\n# Generate 5 passwords and copy the first to clipboard\npassforge gen -n 5 -c\n\n# Generate a 4-word passphrase\npassforge passphrase\n\n# Generate a passphrase with custom separator\npassforge passphrase -s \"_\" --capitalize\n\n# Generate a 6-digit PIN\npassforge pin\n\n# Generate a secure hex token (API key)\npassforge token -f hex -l 32\n\n# Generate a UUID\npassforge token -f uuid\n\n# Analyze password strength\npassforge analyze \"MyP@ssw0rd123\"\n\n# Check against Have I Been Pwned\npassforge analyze \"password123\" --hibp\n\n# Bulk generate 20 passwords with strength info\npassforge bulk -n 20 --with-strength\n\n# Save 100 passwords to file\npassforge bulk -n 100 -o passwords.txt\n\n# Show entropy reference table\npassforge strength -l 16\n\n# Use a security profile\npassforge recipe --profile secure\npassforge recipe --profile api\npassforge recipe --profile wifi\n```\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `gen` | Generate cryptographically secure passwords |\n| `passphrase` | Generate memorable word-based passphrases |\n| `pin` | Generate numeric PINs |\n| `token` | Generate API keys, secrets, and UUIDs |\n| `analyze` | Analyze password strength and entropy |\n| `bulk` | Bulk-generate secrets and save to file |\n| `strength` | Show entropy reference table for configurations |\n| `recipe` | Generate passwords using curated security profiles |\n\n### `gen` Options\n\n| Flag | Description |\n|------|-------------|\n| `-l, --length` | Password length (default: 16) |\n| `-n, --count` | Number of passwords |\n| `--no-upper` | Exclude uppercase letters |\n| `--no-lower` | Exclude lowercase letters |\n| `--no-digits` | Exclude digits |\n| `--no-symbols` | Exclude symbols |\n| `--no-ambiguous` | Exclude `0`, `O`, `1`, `l`, `I` |\n| `--exclude` | Custom characters to exclude |\n| `--min-upper/lower/digits/symbols` | Require at least N of each type |\n| `-c, --copy` | Copy to clipboard |\n| `--bare` | Clean output for scripting |\n\n### `token` Formats\n\n| Format | Example |\n|--------|---------|\n| `hex` | `a3f9b2c1...` |\n| `urlsafe` | `xZ_Abc123...` |\n| `base64` | `YWJjZGVm...` |\n| `alphanumeric` | `Abc123XyZ...` |\n| `uuid` | `550e8400-e29b-41d4-...` |\n\n### `recipe` Profiles\n\n| Profile | Use Case |\n|---------|----------|\n| `basic` | Social media, low-risk accounts (12 chars) |\n| `secure` | Email, banking, work accounts (20 chars) |\n| `max` | Admin, root, vault passwords (32 chars) |\n| `web` | Web services, avoids special symbols (16 chars) |\n| `api` | API keys and service tokens |\n| `wifi` | WiFi passwords, easy to type |\n| `pin` | 6-digit numeric PIN |\n| `passphrase` | 4-word memorable passphrase |\n\n## Configuration\n\npassforge uses Python's `secrets` module, which sources randomness from the OS CSPRNG (`/dev/urandom` on Linux/macOS, `CryptGenRandom` on Windows). No configuration file is needed.\n\nFor scripting, use `--bare` to get clean output:\n\n```bash\n# Generate and use a password in a script\nNEW_PASS=$(passforge gen -l 20 --no-symbols --bare)\n\n# Bulk generate and pipe\npassforge bulk -n 10 --bare | grep -v \"^#\"\n```\n\n## License\n\nMIT — see [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshazeus%2Fpassforge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshazeus%2Fpassforge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshazeus%2Fpassforge/lists"}