Skip to content

cyplo/genpass

Repository files navigation

genpass status-badge dependency status Donate

A simple yet robust commandline random password generator.

Multiplatform (Linux, Mac, Windows). Fast.

You can use it generate keys or passwords in scripts or use it as your primary desktop password generator.

Has extensive generative test suite, including tests against a Rust port of Dropbox's password strength tester zxcvbn

Typical usage

genpass                  # use defaults, they're good
genpass 2048             # generate long password, can be used as a key
genpass --passphrase 128 # generate longer passphrase
genpass -dlu             # no special characters

Generating a password directly into your system clipboard

On a Mac:

genpass | pbcopy

On Linux:

genpass | xclip -selection clipboard

Getting genpass

If you're using Nix flakes

  • you can try genpass without installing it nix run git https://git.cyplo.dev/cyplo/genpass.git
  • flake url is https://git.cyplo.dev/cyplo/genpass.git

On any system with Rust installed

$ cargo install genpass

Commandline options

$ genpass --help

USAGE:
genpass [FLAGS] [length]

FLAGS:
-h, --help                 Prints help information
-l, --include-lowercase    Generate the password using lowercase letters
-n, --include-numeric      Generate the password using numeric characters
-s, --include-special      Generate the password using special (non-alphanumeric) characters
-u, --include-uppercase    Generate the password using uppercase letters
--passphrase           Create a passphrase of (at least) the given length instead of a password.
--version

ARGS:
<length>    The length of the password to generate [default: 32]

A note on passphrases

  • Passphrases are generated using EFF's "long" password list.
  • Passphrases are at least --length characters long, not necessarily exactly that long.

A road to 1.0

TODOs to get genpass to 1.0

Contributing

All contributions welcome !

Sources

git clone https://git.cyplo.dev/cyplo/genpass.git

quickstart

  • you can use Nix to recreate the development environment reproducibly
  • nix develop in this repo will give you a shell with all the dependencies needed