An easy-to-use command-line password generator

npm install pass-gen
4 downloads in the last day
4 downloads in the last week
15 downloads in the last month

node-password-generator (pass-gen)

A customizable command-line/terminal password generator

It works programmatically in node and in the browser too!

Generate human-readable1 passwords quickly and easily and specify what set of characters you want to generate the password from. By default it uses the full Latin-1 charset (execept for some ambiguous characters such as space and iIl etc) to maximize entropy.

It's best understood by looking at the examples.

1 Depends on how "readable" you consider AS$é§0 to be and if your font supports Latin-1 characters.


Default usage

$ passgen

WIFI-friendly password

$ passgen -wnl 10

PIN code

$ passgen -nl 4

Quick copy to clipboard

$ passgen | pbcopy

See the tests folder for more examples.


npm install pass-gen -g


Command-line API

$ passgen -h

  Usage: passgen [options]


    -h, --help                   output usage information
    -V, --version                output the version number
    -n --numbers                 Use 0-9
    -w --ascii                   Use a-z
    -u --ASCII                   Use A-Z
    -s --special                 Use special ASCII characters such as .,_:;@...
    -W --latin                   Use Latin-1 chars such as åöäé...
    -U --Latin                   Use uppercase Latin-1 chars such as ÅÖÄÉ...
    -S --Special                 Use special Latin-1 chars such as £§±©...
    -a --ambiguous               Exclude ambiguous characters such as [space]"oO0...
    -x --extra <custom charset>  Use a custom set
    -l --length <integer>        Set number of characters, Default: 30
    -i --interactive             Interactive mode

Node API

  • require('pass-gen')(options, [length])
    • options (Array|Object) What charsets to use
      • numbers
      • ascii
      • ASCII
      • special
      • latin
      • LATIN
      • Special
      • ambiguous
      • extra
      • length
    • length (Int) Number of characters in password

See command-line options for what these options do

Node examples

var passgen = require('pass-gen');

// Default

// Using array
passgen(['ascii', 'ASCII'], 10);

// Using object
  ascii: true,
  ASCII: 1,
  numbers: 'what you set here doesn\'t matter',
  extra: '@=/.', // but this does
  length: 15 // and this

Note that an options object must be used if you want to specify a custom charset.

Browser usage

Compile with browserify. See Node examples.


Please create an issue if you find something broken or would like a new feature. Do so even if you want to fix it yourself, so I know. Work of and issue pull-request to the develop branch.


Run make test to run tests. Any added or changed functionality must be tested.



npm loves you