Node.js CLI options parser.
Switch branches/tags
Latest commit 3cbbbf9 Nov 11, 2017 @JorgeBucaran JorgeBucaran 2.0.0


Travis CI Codecov npm

Getopts is a Node.js CLI options parser.


Using npm or Yarn.

npm i getopts


Use getopts to parse the arguments passed into your program from the command line.

$ example/demo --super=sonic -jb9000 -- game over
const options = getopts(process.argv.slice(2), {
  alias: {
    s: "super",
    b: "blitz"
  default: {
    turbo: true

Getopts expects an array of arguments and options object (optional) and returns an object where you can look up the argument keys and their values.

  _: ["game", "over"],
  j: true,
  s: "sonic",
  b: "9000",
  super: "sonic",
  blitz: "9000",
  turbo: true


getopts(argv, options)


An array of arguments to parse. See process.argv.

Arguments that begin with one or two dashes are called options or flags. Options may have one or more aliases. The underscore key stores operands. Operands include non-options, the single dash - and all the arguments after --.


An object of option aliases. An alias can be a string or an array of strings.

getopts(["-b"], {
  alias: {
    b: ["B", "turbo"]
}) //=> { _:[], b:true, B:true, turbo:true }


An array of options that should be parsed as booleans.

getopts(["-b", 1], {
  boolean: ["b"]
}) //=> { _:[1], b:true }


An object of default values for missing options.

getopts(["-b"], {
  default: {
    turbo: true
}) //=> { _:[], b:true, turbo:true }


A function that runs for every unknown option. Return false to dismiss the option.

getopts(["-abc"], {
  unknown: option => option === "a"
}) // => { _:[], a:true }


Getopts is MIT licensed. See LICENSE.